diff --git a/src/button.js b/src/button.js index 527c4927..71aaff61 100644 --- a/src/button.js +++ b/src/button.js @@ -181,6 +181,8 @@ $.Button = function( options ) { if ( event.insideElementPressed ) { inTo( _this, $.ButtonState.DOWN ); /** + * Raised when the cursor enters the Button element. + * * @event enter * @memberof OpenSeadragon.Button * @type {object} @@ -197,6 +199,8 @@ $.Button = function( options ) { focusHandler: function ( event ) { this.enterHandler( event ); /** + * Raised when the Button element receives focus. + * * @event focus * @memberof OpenSeadragon.Button * @type {object} @@ -211,6 +215,8 @@ $.Button = function( options ) { outTo( _this, $.ButtonState.GROUP ); if ( event.insideElementPressed ) { /** + * Raised when the cursor leaves the Button element. + * * @event exit * @memberof OpenSeadragon.Button * @type {object} @@ -225,6 +231,8 @@ $.Button = function( options ) { blurHandler: function ( event ) { this.exitHandler( event ); /** + * Raised when the Button element loses focus. + * * @event blur * @memberof OpenSeadragon.Button * @type {object} @@ -238,6 +246,8 @@ $.Button = function( options ) { pressHandler: function ( event ) { inTo( _this, $.ButtonState.DOWN ); /** + * Raised when a mouse button is pressed or touch occurs in the Button element. + * * @event press * @memberof OpenSeadragon.Button * @type {object} @@ -252,6 +262,8 @@ $.Button = function( options ) { if ( event.insideElementPressed && event.insideElementReleased ) { outTo( _this, $.ButtonState.HOVER ); /** + * Raised when the mouse button is released or touch ends in the Button element. + * * @event release * @memberof OpenSeadragon.Button * @type {object} @@ -270,6 +282,8 @@ $.Button = function( options ) { clickHandler: function( event ) { if ( event.quick ) { /** + * Raised when a mouse button is pressed and released or touch is initiated end ended in the Button element within the time and distance threshold. + * * @event click * @memberof OpenSeadragon.Button * @type {object} @@ -285,6 +299,8 @@ $.Button = function( options ) { //console.log( "%s : handling key %s!", _this.tooltip, event.keyCode); if( 13 === event.keyCode ){ /*** + * Raised when a mouse button is pressed and released or touch is initiated end ended in the Button element within the time and distance threshold. + * * @event click * @memberof OpenSeadragon.Button * @type {object} @@ -294,6 +310,8 @@ $.Button = function( options ) { */ _this.raiseEvent( "click", { originalEvent: event.originalEvent } ); /*** + * Raised when the mouse button is released or touch ends in the Button element. + * * @event release * @memberof OpenSeadragon.Button * @type {object} diff --git a/src/eventsource.js b/src/eventsource.js index 16abb4b8..0f911af3 100644 --- a/src/eventsource.js +++ b/src/eventsource.js @@ -39,7 +39,7 @@ * * @callback EventHandler * @memberof OpenSeadragon - * @param {Object} event - See individual events for event properties passed. + * @param {Object} event - See individual events for event-specific properties. */ diff --git a/src/openseadragon.js b/src/openseadragon.js index 6796955b..7f763da2 100644 --- a/src/openseadragon.js +++ b/src/openseadragon.js @@ -82,27 +82,34 @@ */ +/** + * @version <%= pkg.name %> <%= pkg.version %> + * + * @file + * **OpenSeadragon - Javascript Deep Zooming** + * + * OpenSeadragon is provides an html interface for creating + * deep zoom user interfaces. The simplest examples include deep + * zoom for large resolution images, and complex examples include + * zoomable map interfaces driven by SVG files. + * + */ - /** - * @version <%= pkg.name %> <%= pkg.version %> - * - * @fileOverview - * <h2> - * <strong> - * OpenSeadragon - Javascript Deep Zooming - * </strong> - * </h2> - * <p> - * OpenSeadragon is provides an html interface for creating - * deep zoom user interfaces. The simplest examples include deep - * zoom for large resolution images, and complex examples include - * zoomable map interfaces driven by SVG files. - * </p> - */ +/** + * @module OpenSeadragon + * + */ - /** - * @module OpenSeadragon - */ +/** + * The root namespace for OpenSeadragon. All utility methods + * and classes are defined on or below this namespace. + * + * @namespace OpenSeadragon + * + */ + + +// Typedefs /** * All required and optional settings for instantiating a new instance of an OpenSeadragon image viewer. @@ -110,10 +117,6 @@ * @typedef {Object} Options * @memberof OpenSeadragon * - * @property {String} [xmlPath=null] - * DEPRECATED. A relative path to load a DZI file from the server. - * Prefer the newer Options.tileSources. - * * @property {Array|String|Function|Object[]|Array[]|String[]|Function[]} [tileSources=null] * As an Array, the tileSource can hold either be all Objects or mixed * types of Arrays of Objects, String, Function. When a value is a String, @@ -124,6 +127,25 @@ * is an Array of objects, it is used to create a * {@link OpenSeadragon.LegacyTileSource}. * + * @property {String} [xmlPath=null] + * **DEPRECATED**. A relative path to load a DZI file from the server. + * Prefer the newer Options.tileSources. + * + * @property {String} [prefixUrl='/images/'] + * Prepends the prefixUrl to navImages paths, which is very useful + * since the default paths are rarely useful for production + * environments. + * + * @property {OpenSeadragon.NavImages} [navImages] + * An object with a property for each button or other built-in navigation + * control, eg the current 'zoomIn', 'zoomOut', 'home', and 'fullpage'. + * Each of those in turn provides an image path for each state of the botton + * or navigation control, eg 'REST', 'GROUP', 'HOVER', 'PRESS'. Finally the + * image paths, by default assume there is a folder on the servers root path + * called '/images', eg '/images/zoomin_rest.png'. If you need to adjust + * these paths, prefer setting the option.prefixUrl rather than overriding + * every image path directly through this setting. + * * @property {Object} [tileHost=null] * TODO: Implement this. Currently not used. * @@ -276,6 +298,11 @@ * interactions include draging the image in a plane, and zooming in toward * and away from the image. * + * @property {Boolean} [navPrevNextWrap=false] + * If the 'previous' button will wrap to the last image when viewing the first + * image and if the 'next' button will wrap to the first image when viewing + * the last image. + * * @property {Boolean} [showSequenceControl=true] * If the viewer has been configured with a sequence of tile sources, then * provide buttons for navigating forward and backward through the images. @@ -289,35 +316,84 @@ * position. If preserveViewport is set to true, then the viewport position * is preserved when navigating between images in the sequence. * - * @property {String} [prefixUrl='/images/'] - * Prepends the prefixUrl to navImages paths, which is very useful - * since the default paths are rarely useful for production - * environments. + * @property {Boolean} [showReferenceStrip=false] + * If the viewer has been configured with a sequence of tile sources, then + * display a scrolling strip of image thumbnails for navigating through the images. * - * @property {Object} [navImages=] - * An object with a property for each button or other built-in navigation - * control, eg the current 'zoomIn', 'zoomOut', 'home', and 'fullpage'. - * Each of those in turn provides an image path for each state of the botton - * or navigation control, eg 'REST', 'GROUP', 'HOVER', 'PRESS'. Finally the - * image paths, by default assume there is a folder on the servers root path - * called '/images', eg '/images/zoomin_rest.png'. If you need to adjust - * these paths, prefer setting the option.prefixUrl rather than overriding - * every image path directly through this setting. + * @property {String} [referenceStripScroll='horizontal'] * - * @property {Boolean} [navPrevNextWrap=false] - * If the 'previous' button will wrap to the last image when viewing the first - * image and if the 'next' button will wrap to the first image when viewing - * the last image. + * @property {Element} [referenceStripElement=null] + * + * @property {Number} [referenceStripHeight=null] + * + * @property {Number} [referenceStripWidth=null] + * + * @property {String} [referenceStripPosition='BOTTOM_LEFT'] + * + * @property {Number} [referenceStripSizeRatio=0.2] + * + * @property {Boolean} [collectionMode=false] + * + * @property {Number} [collectionRows=3] + * + * @property {String} [collectionLayout='horizontal'] + * + * @property {Number} [collectionTileSize=800] * */ +/** + * The names for the image resources used for the image navigation buttons. + * + * @typedef {Object} NavImages + * @memberof OpenSeadragon + * + * @property {Object} zoomIn - Images for the zoom-in button. + * @property {String} zoomIn.REST + * @property {String} zoomIn.GROUP + * @property {String} zoomIn.HOVER + * @property {String} zoomIn.DOWN + * + * @property {Object} zoomOut - Images for the zoom-out button. + * @property {String} zoomOut.REST + * @property {String} zoomOut.GROUP + * @property {String} zoomOut.HOVER + * @property {String} zoomOut.DOWN + * + * @property {Object} home - Images for the home button. + * @property {String} home.REST + * @property {String} home.GROUP + * @property {String} home.HOVER + * @property {String} home.DOWN + * + * @property {Object} fullpage - Images for the full-page button. + * @property {String} fullpage.REST + * @property {String} fullpage.GROUP + * @property {String} fullpage.HOVER + * @property {String} fullpage.DOWN + * + * @property {Object} previous - Images for the previous button. + * @property {String} previous.REST + * @property {String} previous.GROUP + * @property {String} previous.HOVER + * @property {String} previous.DOWN + * + * @property {Object} next - Images for the next button. + * @property {String} next.REST + * @property {String} next.GROUP + * @property {String} next.HOVER + * @property {String} next.DOWN + * + */ + + /** * This function serves as a single point of instantiation for an {@link OpenSeadragon.Viewer}, including all * combinations of out-of-the-box configurable features. * * @function OpenSeadragon * @memberof module:OpenSeadragon - * @param {OpenSeadragon.Options} options + * @param {OpenSeadragon.Options} options - Viewer options. * @returns {OpenSeadragon.Viewer} */ window.OpenSeadragon = window.OpenSeadragon || function( options ){ @@ -327,14 +403,6 @@ window.OpenSeadragon = window.OpenSeadragon || function( options ){ }; -/** - * The root namespace for OpenSeadragon. All utility methods - * and classes are defined on or below this namespace. - * - * @namespace OpenSeadragon - */ - - (function( $ ){ diff --git a/src/viewer.js b/src/viewer.js index eecfd1a6..8d4e3fdc 100644 --- a/src/viewer.js +++ b/src/viewer.js @@ -54,17 +54,13 @@ var THIS = {}, * @memberof OpenSeadragon * @extends OpenSeadragon.EventSource * @extends OpenSeadragon.ControlDock - * @param {OpenSeadragon.Options} options - * @param {String} options.element Id of Element to attach to, - * @param {String} options.xmlPath Xpath ( TODO: not sure! ), - * @param {String} options.prefixUrl Url used to prepend to paths, eg button - * images, etc. - * @param {OpenSeadragon.Control[]} options.controls Array of OpenSeadragon.Control, - * @param {OpenSeadragon.Overlay[]} options.overlays Array of OpenSeadragon.Overlay, - * @param {OpenSeadragon.Control[]} options.overlayControls An Array of ( TODO: - * not sure! ) - * @property {OpenSeadragon.Viewport} viewport The viewer's viewport, where you - * can access zoom, pan, etc. + * @param {OpenSeadragon.Options} [options] - Viewer options. If an {@link OpenSeadragon.Options} object is passed first, all other parameters are ignored. This is the preferred method of creating a viewer. + * @param {String} element - Id of Element to attach to, + * @param {String} xmlPath - Xpath ( TODO: not sure! ), + * @param {String} prefixUrl - Url used to prepend to paths, eg button images, etc. + * @param {OpenSeadragon.Control[]} controls - Array of OpenSeadragon.Control, + * @param {OpenSeadragon.Overlay[]} overlays - Array of OpenSeadragon.Overlay, + * @param {OpenSeadragon.Control[]} overlayControls - An Array of ( TODO: not sure! ) * **/ $.Viewer = function( options ) { @@ -126,13 +122,26 @@ $.Viewer = function( options ) { //These are originally not part options but declared as members //in initialize. Its still considered idiomatic to put them here source: null, + /** + * @member {OpenSeadragon.Drawer} drawer + * @memberof OpenSeadragon.Viewer# + */ drawer: null, drawers: [], + /** + * The viewer's viewport, where you can access zoom, pan, etc. + * @member {OpenSeadragon.Viewport} viewport + * @memberof OpenSeadragon.Viewer# + */ viewport: null, + /** + * @member {OpenSeadragon.Navigator} navigator + * @memberof OpenSeadragon.Viewer# + */ navigator: null, - //A collection viewport is a seperate viewport used to provide - //simultanious rendering of sets of tiless + //A collection viewport is a separate viewport used to provide + //simultanious rendering of sets of tiles collectionViewport: null, collectionDrawer: null,