2011-08-15 14:18:27 +00:00
|
|
|
Ox.load('UI', {debug: true}, function() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var $buttons = Ox.Bar({size: 24});
|
|
|
|
|
|
|
|
var $img, $previewDialog, preview = false;
|
|
|
|
var $list = Ox.IconList({
|
|
|
|
item: function(data, sort, size) {
|
|
|
|
var ratio = data.width / data.height;
|
|
|
|
size = size || 128;
|
|
|
|
return {
|
|
|
|
height: ratio <= 1 ? size : size / ratio,
|
|
|
|
id: data.id,
|
|
|
|
info: data.width + ' x ' + data.height + ' px',
|
|
|
|
title: Ox.toTitleCase(data.id),
|
|
|
|
url: 'png/' + data.id + '.png',
|
|
|
|
width: ratio >= 1 ? size : size * ratio
|
|
|
|
};
|
|
|
|
},
|
|
|
|
items: [
|
|
|
|
{
|
|
|
|
id: 'earth',
|
|
|
|
width: 1024,
|
|
|
|
height: 1024
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'north',
|
|
|
|
width: 1024,
|
|
|
|
height: 512
|
|
|
|
},
|
|
|
|
{
|
|
|
|
id: 'west',
|
|
|
|
width: 512,
|
|
|
|
height: 1024
|
|
|
|
}
|
|
|
|
],
|
|
|
|
orientation: 'horizontal',
|
|
|
|
size: 128,
|
|
|
|
sort: [{key: 'id', operator: '+'}],
|
|
|
|
unique: 'id'
|
|
|
|
}).bindEvent({
|
|
|
|
closepreview: function() {
|
|
|
|
$previewDialog.close();
|
|
|
|
preview = false;
|
|
|
|
},
|
|
|
|
openpreview: function(event) {
|
|
|
|
var data = Ox.getObjectById($list.options('items'), event.ids[0]),
|
|
|
|
ratio = data.width / data.height,
|
2011-08-08 13:58:19 +00:00
|
|
|
windowWidth = window.innerWidth * 0.8,
|
|
|
|
windowHeight = window.innerHeight * 0.8,
|
2011-08-15 14:18:27 +00:00
|
|
|
windowRatio = windowWidth / windowHeight,
|
|
|
|
width = Math.round(ratio > windowRatio ? windowWidth : windowHeight * ratio),
|
|
|
|
height = Math.round(ratio < windowRatio ? windowHeight : windowWidth / ratio);
|
|
|
|
Ox.print('d/w/h', data, width, height)
|
|
|
|
if (!preview) {
|
|
|
|
if (!$previewDialog) {
|
|
|
|
$previewDialog = Ox.Dialog({
|
|
|
|
closeButton: true,
|
|
|
|
content: $img = $('<img>')
|
|
|
|
.attr({src: 'png/' + data.id + '.png'})
|
|
|
|
.css({width: width + 'px', height: height + 'px'}),
|
|
|
|
fixedRatio: true,
|
|
|
|
focus: false,
|
|
|
|
height: height,
|
|
|
|
maximizeButton: true,
|
|
|
|
title: Ox.toTitleCase(data.id),
|
|
|
|
width: width
|
|
|
|
})
|
|
|
|
.bindEvent({
|
|
|
|
close: function() {
|
|
|
|
$list.closePreview();
|
|
|
|
preview = false;
|
|
|
|
},
|
|
|
|
resize: function(event) {
|
|
|
|
$img.css({
|
|
|
|
width: event.width + 'px',
|
|
|
|
height: event.height + 'px'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}).open();
|
|
|
|
} else {
|
|
|
|
$previewDialog.options({
|
|
|
|
content: $img = $('<img>')
|
|
|
|
.attr({src: 'png/' + data.id + '.png'})
|
|
|
|
.css({width: width + 'px', height: height + 'px'}),
|
|
|
|
height: height,
|
|
|
|
title: Ox.toTitleCase(data.id),
|
|
|
|
width: width
|
|
|
|
}).open();
|
|
|
|
}
|
|
|
|
preview = true;
|
|
|
|
} else {
|
|
|
|
$previewDialog.options({
|
|
|
|
content: $img = $('<img>')
|
|
|
|
.attr({src: 'png/' + data.id + '.png'})
|
|
|
|
.css({width: width + 'px', height: height + 'px'}),
|
|
|
|
title: Ox.toTitleCase(data.id),
|
|
|
|
}).setSize(width, height);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
Ox.SplitPanel({
|
|
|
|
elements: [
|
|
|
|
{
|
|
|
|
element: $buttons,
|
|
|
|
size: 24
|
|
|
|
},
|
|
|
|
{
|
|
|
|
element: $('<div>').css({background: 'rgb(128, 128, 128)'})
|
|
|
|
},
|
|
|
|
{
|
|
|
|
element: $list,
|
|
|
|
size: 208
|
|
|
|
}
|
|
|
|
],
|
|
|
|
orientation: 'vertical'
|
|
|
|
}).appendTo(Ox.UI.$body);
|
|
|
|
|
|
|
|
Ox.UI.$body
|
|
|
|
.css({
|
|
|
|
padding: '4px',
|
|
|
|
background: 'rgb(240, 240, 240)'
|
|
|
|
});
|
|
|
|
|
|
|
|
var $dialog = Ox.Dialog({
|
|
|
|
buttons: [
|
|
|
|
Ox.Button({
|
|
|
|
title: 'Cancel'
|
|
|
|
}).bindEvent({
|
|
|
|
click: function() {
|
|
|
|
$dialog.close();
|
|
|
|
}
|
|
|
|
}),
|
|
|
|
Ox.Button({
|
|
|
|
title: 'Close'
|
|
|
|
}).bindEvent({
|
|
|
|
click: function() {
|
|
|
|
$dialog.close();
|
|
|
|
}
|
|
|
|
})
|
|
|
|
],
|
|
|
|
content: Ox.SplitPanel({
|
|
|
|
elements: [
|
|
|
|
{
|
|
|
|
collapsible: true,
|
|
|
|
element: Ox.Element({id: 'foo'}).css({background: 'rgb(240, 240, 240)'}),
|
|
|
|
resizable: true,
|
|
|
|
resize: [128, 256, 384],
|
|
|
|
size: 256
|
|
|
|
},
|
|
|
|
{
|
|
|
|
element: Ox.Element({id: 'bar'}).css({background: 'rgb(240, 240, 240)'}),
|
|
|
|
}
|
|
|
|
],
|
|
|
|
orientation: 'horizontal'
|
|
|
|
}),
|
|
|
|
title: Ox.repeat('Foo bar. ', 10)
|
|
|
|
});
|
|
|
|
|
|
|
|
var $dialogA = Ox.Dialog({
|
|
|
|
buttons: [
|
|
|
|
Ox.Button({title: 'Foo'}),
|
|
|
|
Ox.Button({title: 'Bar'}),
|
|
|
|
{},
|
|
|
|
Ox.Button({title: 'Baz'}),
|
|
|
|
Ox.Button({title: 'Close'}).bindEvent({
|
|
|
|
click: function() {
|
|
|
|
$dialogA.close();
|
|
|
|
}
|
|
|
|
})
|
|
|
|
],
|
|
|
|
content: $('<div>')
|
|
|
|
.css({padding: '16px'})
|
|
|
|
.html(Ox.repeat('Foo bar. ', 100)),
|
|
|
|
title: Ox.repeat('Foo bar. ', 10)
|
|
|
|
}).bindEvent({
|
|
|
|
key_escape: function() {
|
|
|
|
$dialogA.close();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
var $img = $('<img>')
|
|
|
|
.attr({src: 'png/earth.png'})
|
|
|
|
.css({width: '256px', height: '256px'});
|
|
|
|
var $dialogB = Ox.Dialog({
|
|
|
|
closeButton: true,
|
|
|
|
content: $img,
|
|
|
|
fixedRatio: true,
|
|
|
|
focus: false,
|
|
|
|
height: 256,
|
|
|
|
maximizeButton: true,
|
|
|
|
width: 256,
|
|
|
|
title: Ox.repeat('Foo bar. ', 10)
|
|
|
|
}).bindEvent({
|
|
|
|
resize: function(event) {
|
|
|
|
$img.css({
|
|
|
|
width: event.width + 'px',
|
|
|
|
height: event.height + 'px'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
var $dialogC = Ox.Dialog({
|
|
|
|
closeButton: true,
|
|
|
|
content: Ox.SplitPanel({
|
|
|
|
elements: [
|
|
|
|
{
|
|
|
|
element: Ox.SplitPanel({
|
|
|
|
elements: [
|
|
|
|
{
|
|
|
|
collapsible: true,
|
|
|
|
element: Ox.Element({id: 'foo'}).css({background: 'rgb(240, 240, 240)'}),
|
|
|
|
resizable: true,
|
|
|
|
resize: [128, 256, 384],
|
|
|
|
size: 256
|
|
|
|
},
|
|
|
|
{
|
|
|
|
element: Ox.Element({id: 'bar'}).css({background: 'rgb(240, 240, 240)'}),
|
|
|
|
}
|
|
|
|
],
|
|
|
|
orientation: 'horizontal'
|
|
|
|
})
|
|
|
|
},
|
|
|
|
{
|
|
|
|
element: Ox.Bar({
|
|
|
|
size: 16}
|
|
|
|
).css({
|
|
|
|
borderBottomLeftRadius: '8px',
|
|
|
|
borderBottomRightRadius: '8px'
|
|
|
|
}),
|
|
|
|
size: 16
|
|
|
|
}
|
|
|
|
],
|
|
|
|
orientation: 'vertical'
|
|
|
|
}),
|
|
|
|
height: Math.round((window.innerHeight - 24) * 0.9),
|
|
|
|
maximizeButton: true,
|
|
|
|
title: Ox.repeat('Foo bar. ', 10),
|
|
|
|
width: Math.round(window.innerWidth * 0.9)
|
|
|
|
});
|
|
|
|
|
|
|
|
Ox.Button({
|
|
|
|
title: 'Dialog'
|
|
|
|
}).css({
|
|
|
|
margin: '4px'
|
|
|
|
}).bindEvent({
|
|
|
|
click: $dialog.open
|
|
|
|
}).appendTo($buttons);
|
|
|
|
|
|
|
|
Ox.Button({
|
|
|
|
title: 'Dialog A'
|
|
|
|
}).css({
|
|
|
|
margin: '4px'
|
|
|
|
}).bindEvent({
|
|
|
|
click: $dialogA.open
|
|
|
|
}).appendTo($buttons);
|
|
|
|
|
|
|
|
Ox.Button({
|
|
|
|
title: 'Dialog B'
|
|
|
|
}).css({
|
|
|
|
margin: '4px'
|
|
|
|
}).bindEvent({
|
|
|
|
click: $dialogB.open
|
|
|
|
}).appendTo($buttons);
|
|
|
|
|
|
|
|
Ox.Button({
|
|
|
|
title: 'Dialog C'
|
|
|
|
}).css({
|
|
|
|
margin: '4px'
|
|
|
|
}).bindEvent({
|
|
|
|
click: $dialogC.open
|
|
|
|
}).appendTo($buttons);
|
|
|
|
|
|
|
|
});
|