mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-28 18:00:09 +00:00
297 lines
6.4 KiB
HTML
Executable File
297 lines
6.4 KiB
HTML
Executable File
<!DOCTYPE html>
|
|
<html>
|
|
<link rel="stylesheet" href="../../css/widget/browse.css">
|
|
<link rel="stylesheet" href="../../css/fonts.css">
|
|
|
|
<meta name="viewport" content="width=device-width">
|
|
|
|
<style>
|
|
|
|
body {
|
|
font-family: OpenSans, sans-serif;
|
|
}
|
|
|
|
.container {
|
|
position: absolute;
|
|
}
|
|
|
|
|
|
.browse-widget {
|
|
user-select: none;
|
|
}
|
|
.browse-widget:not(.flat) .list :focus {
|
|
outline: none;
|
|
}
|
|
|
|
|
|
/* XXX move these to the main CSS */
|
|
.browse-widget:not(.flat) .list div:not(.not-traversable) .text:after {
|
|
content: "";
|
|
}
|
|
/* XXX this needs to be the last .text item only */
|
|
.browse-widget:not(.flat) .list .traversable .text:after {
|
|
content: "/" !important;
|
|
}
|
|
|
|
/* selection... */
|
|
.browse-widget:not(.flat) .list .selected {
|
|
color: yellow;
|
|
background: none;
|
|
}
|
|
.browse-widget:not(.flat) .list .focused {
|
|
background: rgba(0, 0, 0, 0.08);
|
|
}
|
|
|
|
/* XXX not sure about this... */
|
|
.browse-widget .list .list {
|
|
overflow: visible;
|
|
}
|
|
|
|
.browse-widget .list .text .key-hint {
|
|
text-decoration-skip-ink: none;
|
|
}
|
|
|
|
/* XXX foe some reason the shadows here are BELLOW the content... */
|
|
.browse-widget>.list {
|
|
box-shadow:
|
|
0 50px 10px -50px gray inset,
|
|
0 -50px 10px -50px gray inset;
|
|
}
|
|
|
|
.item.path .text:before {
|
|
content: "/";
|
|
}
|
|
|
|
|
|
/*
|
|
.browse-widget .list .item .button.toggle-collapse {
|
|
float: left;
|
|
}
|
|
*/
|
|
|
|
|
|
/* XXX stub...
|
|
.browse-widget:not(.flat) .list .text:first-child:before {
|
|
display: inline-block;
|
|
width: 5pt;
|
|
padding-right: 3pt;
|
|
content: " ";
|
|
}
|
|
.browse-widget:not(.flat) .list .traversable .text:first-child:before {
|
|
}
|
|
.browse-widget:not(.flat) .list .traversable:not(.collapsed) .text:first-child:before {
|
|
content: "-";
|
|
}
|
|
.browse-widget:not(.flat) .list .traversable.collapsed .text:first-child:before {
|
|
content: "+";
|
|
}
|
|
*/
|
|
|
|
|
|
/* scrollbar setup... */
|
|
.browse-widget ::-webkit-scrollbar {
|
|
width: 10px;
|
|
height: 10px;
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-button {
|
|
display: none;
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-track {
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-track-piece {
|
|
background: transparent;
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-track-piece {
|
|
background: rgba(0, 0, 0, 0.05);
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-thumb {
|
|
background: rgba(0, 0, 0, 0.15);
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-thumb:hover {
|
|
background: rgba(0, 0, 0, 0.3);
|
|
}
|
|
.browse-widget ::-webkit-scrollbar-corner {
|
|
}
|
|
.browse-widget ::-webkit-resizer {
|
|
}
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
<script src="../../ext-lib/jquery.js"></script>
|
|
<script src="../../ext-lib/jquery-ui.js"></script>
|
|
|
|
<script src="../jli.js"></script>
|
|
|
|
<script src="../../ext-lib/require.js"></script>
|
|
<script src="../../cfg/requirejs.js"></script>
|
|
|
|
|
|
<!--script src="browse-dialog.js"></script-->
|
|
|
|
<script>
|
|
|
|
requirejs.config({
|
|
paths: {
|
|
'lib/object': '../../node_modules/ig-object/object',
|
|
'lib/actions': '../../node_modules/ig-actions/actions',
|
|
'lib/features': '../../node_modules/ig-features/features',
|
|
'lib/walk': '../../node_modules/generic-walk/walk',
|
|
//'lib/keyboard': '../../node_modules/ig-keyboard/keyboard',
|
|
},
|
|
map: {
|
|
'*': {
|
|
'../object': 'lib/object',
|
|
},
|
|
},
|
|
})
|
|
|
|
requirejs([
|
|
'../util',
|
|
'../keyboard',
|
|
'lib/object',
|
|
'../toggler',
|
|
'./browse2',
|
|
], function(u, k, o, t, br){
|
|
util = u
|
|
keyboard = k
|
|
object = o
|
|
toggler = t
|
|
browser = br
|
|
|
|
|
|
// XXX split this into several dialogues, show each and then combine...
|
|
dialog = browser.Browser(function(make){
|
|
make('path', {
|
|
id:'selected_path',
|
|
cls: 'path',
|
|
})
|
|
make.Separator()
|
|
|
|
make(['list', 'of', 'text'])
|
|
make.group(
|
|
make('$group item 0 (open event)',
|
|
function(){ console.log('##', ...arguments) }),
|
|
'group item 1 (bare)')
|
|
// XXX Q: should we show only one if multiple lines are in sequence???
|
|
make('---')
|
|
// embeded browser...
|
|
make(browser.Browser(function(make){
|
|
make('inlined browser item 0 (open/menu events)', {
|
|
open: function(){ console.log('!!! OPEN', ...arguments) },
|
|
menu: function(){ console.log('!!! MENU', ...arguments) },
|
|
})
|
|
make(1)
|
|
make(2)
|
|
}))
|
|
// basic nested list...
|
|
make.nest('$nested', [
|
|
make('mo$o', {disabled: true}),
|
|
2,
|
|
// XXX this is not supported by .map(..)...
|
|
make.nest('$ne$sted', browser.Browser(function(make){
|
|
make('ab')
|
|
//make('<img src="../../experiments/grayscale.jpg">',
|
|
//make($('<img src="../../experiments/grayscale.jpg">')[0],
|
|
make($('<img src="../../experiments/grayscale.jpg">'),
|
|
{
|
|
alt: 'image item example'
|
|
})
|
|
})),
|
|
])
|
|
make('in between two $subtrees...')
|
|
// nested browser...
|
|
make.nest('B',
|
|
browser.Browser(function(make){
|
|
make('xx')
|
|
make.nest('C', browser.Browser(function(make){
|
|
make('aaa')
|
|
make.nest('D', browser.Browser(function(make){
|
|
make('a')
|
|
make('---')
|
|
make('b')
|
|
}))
|
|
make('bbb', {buttons: [
|
|
['test', 'focus: "parent"'],
|
|
]})
|
|
make('bbb')
|
|
}))
|
|
}), {
|
|
//collapsed: true,
|
|
// XXX this does not appear to survive attaching an item
|
|
// to the document...
|
|
open: function(e){
|
|
e.preventDefault()
|
|
console.log('test: open: default prevented...') },
|
|
//cls: ['heading'],
|
|
})
|
|
|
|
make.Separator()
|
|
|
|
make.nest(
|
|
'scroll testing',
|
|
(new Array(100))
|
|
.fill(1)
|
|
.map(function(_, i){
|
|
return make(i) }))
|
|
|
|
}, {
|
|
itemButtons: [
|
|
['–',
|
|
'buttonAction: item button focused -- example button action...'],
|
|
['□',
|
|
function(){ console.log('BUTTON:', ...arguments) },
|
|
{ keys: 'r' }],
|
|
'ToggleCollapse',
|
|
'ToggleDisabled',
|
|
],
|
|
})
|
|
// XXX EXPEREMENT -- need to wrap this into partial .update(..)
|
|
.focus(function(){
|
|
var e = this.get({id: 'selected_path'})
|
|
e.value = this.pathArray
|
|
this.renderItem(e) })
|
|
|
|
dialog.container = $('.container').first()[0]
|
|
|
|
// button handler...
|
|
dialog.buttonAction = function(item, button, focused){
|
|
console.log(`BUTTON "${button}":`, item, '-- focus at:', focused) }
|
|
|
|
dialog
|
|
.update()
|
|
.focus()
|
|
|
|
//$('.container').first().append(dialog.render())
|
|
})
|
|
|
|
$(function(){
|
|
|
|
$('.container')
|
|
.draggable({ cancel: ".path .dir, .list div" })
|
|
})
|
|
|
|
|
|
|
|
</script>
|
|
|
|
<body>
|
|
|
|
<div class="container tree">
|
|
</div>
|
|
|
|
<div class="container flat">
|
|
</div>
|
|
|
|
<div class="container flat2">
|
|
</div>
|
|
|
|
<div class="container pathlist">
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|
|
<!-- vim:set ts=4 sw=4 : -->
|