mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-28 18:00:09 +00:00
resumed experiments on react/preact renderers...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
8d4b8d282c
commit
911615ea44
@ -23,6 +23,7 @@ require('features/ui')
|
||||
// XXX
|
||||
require('features/ui-blank-render')
|
||||
require('features/ui-ribbons')
|
||||
require('features/ui-preact-render')
|
||||
require('features/ui-virtual-dom')
|
||||
require('features/ui-react')
|
||||
// XXX
|
||||
|
||||
@ -67,18 +67,17 @@ core.ImageGridFeatures.Feature('viewer-testing', [
|
||||
'keyboard',
|
||||
|
||||
// XXX use one...
|
||||
//'ui-blank-render',
|
||||
'ui-ribbons-render',
|
||||
'ui-vdom-render',
|
||||
'ui-react-render',
|
||||
'ui-blank-render',
|
||||
'ui-preact-render',
|
||||
//'ui-vdom-render',
|
||||
//'ui-react-render',
|
||||
|
||||
// features...
|
||||
'ui-cursor',
|
||||
|
||||
'ui-single-image',
|
||||
|
||||
// XXX remove this... (at this point this is here only to keep load order consistent)
|
||||
//'ui-partial-ribbons',
|
||||
/*/ XXX has bugs -- non-current ribbons are not always aligned...
|
||||
'ui-partial-ribbons-2',
|
||||
'-ui-partial-ribbons',
|
||||
|
||||
171
ui (gen4)/features/ui-preact-render.js
Executable file
171
ui (gen4)/features/ui-preact-render.js
Executable file
@ -0,0 +1,171 @@
|
||||
/**********************************************************************
|
||||
*
|
||||
*
|
||||
*
|
||||
**********************************************************************/
|
||||
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
|
||||
(function(require){ var module={} // make module AMD/node compatible...
|
||||
/*********************************************************************/
|
||||
|
||||
var object = require('lib/object')
|
||||
var actions = require('lib/actions')
|
||||
var features = require('lib/features')
|
||||
|
||||
var core = require('features/core')
|
||||
|
||||
var ribbons = require('imagegrid/ribbons')
|
||||
|
||||
require('ext-lib/preact')
|
||||
var h = preact.h
|
||||
|
||||
|
||||
/*********************************************************************/
|
||||
|
||||
var RibbonsClassPrototype = {
|
||||
// XXX
|
||||
}
|
||||
RibbonsClassPrototype.__proto__ = ribbons.BaseRibbons.prototype.__proto__
|
||||
|
||||
|
||||
var RibbonsPrototype = {
|
||||
// XXX
|
||||
}
|
||||
RibbonsPrototype.__proto__ = ribbons.BaseRibbons.prototype
|
||||
|
||||
|
||||
var Ribbons =
|
||||
module.Ribbons =
|
||||
object.makeConstructor('Ribbons',
|
||||
RibbonsClassPrototype,
|
||||
RibbonsPrototype)
|
||||
|
||||
|
||||
|
||||
/*********************************************************************/
|
||||
|
||||
var RenderActions = actions.Actions({
|
||||
get dom(){
|
||||
return this.ribbons ? this.ribbons.viewer : undefined },
|
||||
|
||||
load: [
|
||||
function(data){
|
||||
return function(){
|
||||
// XXX setup .ribbons
|
||||
var viewer = data.viewer
|
||||
viewer = viewer == null && this.ribbons != null
|
||||
? this.dom
|
||||
: viewer
|
||||
|
||||
if(this.ribbons == null){
|
||||
this.ribbons = Ribbons(viewer, this.images)
|
||||
// XXX is this correct???
|
||||
//this.ribbons.__image_updaters = [this.updateImage.bind(this)]
|
||||
|
||||
} else {
|
||||
//this.ribbons.clear()
|
||||
this.ribbons.images = this.images
|
||||
}
|
||||
|
||||
this.reload()
|
||||
}
|
||||
}],
|
||||
reload: [
|
||||
function(){
|
||||
// XXX
|
||||
}],
|
||||
refresh: [
|
||||
function(){
|
||||
// XXX
|
||||
}],
|
||||
clear: [
|
||||
function(){
|
||||
// XXX
|
||||
}],
|
||||
|
||||
resizing: [
|
||||
core.notUserCallable(function(unit, size, overflow){
|
||||
// This is a resizing protocol root function.
|
||||
//
|
||||
// This will never be used directly, but will wrap protocol user
|
||||
// functions.
|
||||
//
|
||||
// As an example see: .viewScale(..)
|
||||
|
||||
// XXX stop current animation...
|
||||
// XXX
|
||||
|
||||
// XXX call .resizingDone(..) when animations done...
|
||||
// XXX
|
||||
})],
|
||||
|
||||
viewScale: ['- Zoom/',
|
||||
function(scale){
|
||||
if(scale == null || scale == '?'){
|
||||
return // XXX get scale...
|
||||
}
|
||||
|
||||
this.resizing.chainCall(this, function(){
|
||||
// XXX set scale...
|
||||
}, 'scale', scale)
|
||||
}],
|
||||
fitImage: ['Zoom/Fit image',
|
||||
function(count, overflow){
|
||||
if(count == '?'){
|
||||
return // XXX get size...
|
||||
}
|
||||
|
||||
this.resizing.chainCall(this, function(){
|
||||
// XXX
|
||||
}, 'screenwidth', count, overflow)
|
||||
}],
|
||||
fitRibbon: ['Zoom/Fit ribbon vertically',
|
||||
function(count, whole){
|
||||
if(count == '?'){
|
||||
return // XXX get size...
|
||||
}
|
||||
|
||||
this.resizing.chainCall(this, function(){
|
||||
// XXX set size...
|
||||
}, 'screenheight', count, whole)
|
||||
}],
|
||||
|
||||
// XXX do we need updateImage here???
|
||||
|
||||
centerImage: ['- Interface/Center an image in ribbon horizontally',
|
||||
function(target, align, offset, scale){
|
||||
// XXX
|
||||
}],
|
||||
centerRibbon: ['- Interface/Center a ribbon vertically',
|
||||
function(target){
|
||||
// XXX
|
||||
}],
|
||||
|
||||
ribbonRotation: ['- Interface|Ribbon/',
|
||||
function(angle){
|
||||
// XXX
|
||||
}],
|
||||
})
|
||||
|
||||
var Render =
|
||||
module.Render = core.ImageGridFeatures.Feature({
|
||||
title: '',
|
||||
doc: '',
|
||||
|
||||
tag: 'ui-preact-render',
|
||||
exclusive: ['ui-render'],
|
||||
depends: [
|
||||
// XXX
|
||||
],
|
||||
|
||||
actions: RenderActions,
|
||||
|
||||
handlers: [
|
||||
// XXX
|
||||
],
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* vim:set ts=4 sw=4 : */ return module })
|
||||
@ -23,7 +23,7 @@
|
||||
"glob": "^4.0.6",
|
||||
"guarantee-events": "^1.0.0",
|
||||
"ig-actions": "^3.0.0",
|
||||
"ig-features": "^3.1.8",
|
||||
"ig-features": "^3.1.11",
|
||||
"ig-object": "^1.0.1",
|
||||
"openseadragon": "^2.1.0",
|
||||
"preact": "^8.1.0",
|
||||
|
||||
@ -36,7 +36,7 @@ var requirejs_cfg = {
|
||||
|
||||
//'lib/keyboard': './node_modules/ig-keyboard/keyboard',
|
||||
|
||||
'ext-lib/preact': './node_modules/preact/dist/preact',
|
||||
'ext-lib/preact': './node_modules/preact/dist/preact.dev',
|
||||
},
|
||||
map: {
|
||||
'*': {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user