Commit Graph

185 Commits

Author SHA1 Message Date
Antoine Vandecreme
d853224c15 Add units tests for scroll 2013-11-01 17:37:19 -04:00
Mark Salsbery
085c7f2ecb Use canvas when available - Fixes
Updated documentation doclet.
Enclosed detection code in a function.
Eliminated the Drawer USE_CANVAS global and replaced it with a
Drawer.useCanvas instance variable.
2013-11-01 13:02:28 -07:00
Mark Salsbery
85fcf0ec11 Merge remote-tracking branch 'origin/master' into canvas-detect
Conflicts:
	src/openseadragon.js
2013-11-01 12:22:48 -07:00
Mark Salsbery
e209846ac1 Use canvas whenever possible (#191)
Drawer uses an HTML5 canvas element if it's available.

Viewer.useCanvas can be used to override (default is true).
2013-11-01 10:19:47 -07:00
Antoine Vandecreme
7375ba9241 Fix scrolling when exiting full-screen mode.
Rename fullpage event to full-page and it's fullpage property to fullPage.
Add pre-full-page event.
2013-10-31 22:19:22 -04:00
Mark Salsbery
755c4752c0 'wheel' Event Support Fixes
Whitespace, cancel handling
2013-10-23 13:55:52 -07:00
Mark Salsbery
e76c9e65ab Added 'wheel' Event Support
Also improved OpenSeadragon.addEvent()/OpenSeadragon.removeEvent()
2013-10-23 12:58:36 -07:00
Sharpbarb
7aac7ffd9c Update openseadragon.js
Align initialPage value
2013-10-10 12:05:05 -07:00
Sharpbarb
81664251cc Update openseadragon.js
Missing colon
2013-10-09 15:22:36 -07:00
Sharpbarb
fc972df52e Update openseadragon.js 2013-10-08 14:53:08 -07:00
Ian Gilman
6396fe1504 Merge branch 'Original-Events-In-Handlers' of github.com:msalsbery/openseadragon into msalsbery-Original-Events-In-Handlers
Fixed Conflicts:
	changelog.txt
2013-09-24 10:28:46 -07:00
Mark Salsbery
13415b36f3 MouseTracker Original Events in Handlers
Misc name changes, indentation/whitespace fixes.
Still TODO: Fix documentation, evaluate presence of key handler in a
mouse tracker, evaluate whether isTouchEvent flag should be in all
eventData objects or not.
2013-09-09 14:27:58 -07:00
Mark Salsbery
56f5b9fb74 MouseTracker Original Events in handlers
Comment & Formatting fixes
2013-09-06 10:43:39 -07:00
Mark Salsbery
b3fa8f1184 MouseTracker original events in handlers
Implemented "Expose original event in handlers" (#23) for MouseTracker

Added OpenSeadragon.getElementOffset() method. Element-relative mouse
coordinates should be correct even if the element and/or page is
scrolled (#131)
2013-09-05 17:20:17 -07:00
Chris Adams
1b6cf93474 Graceful handling of IE cross-domain AJAX failures
Prior to IE 10, XmlHttpRequest cannot be used for requests to a
different origin even when the target URL's CORS headers would allow
access (see http://caniuse.com/#feat=cors).

This is easy to miss in testing if you use a single origin during
testing but have a CDN or domain-sharding for production and will break
the error handler function passed to makeAjaxRequest() if that code
assumes it can access properties on the request object.

This adds a more informative pointer to Microsoft's documentation when a
security exception is raised.
2013-08-29 16:13:18 -04:00
Robert Hickman
54e8d8c43f Fixes made after first code review of rotation. 2013-08-15 16:15:20 -06:00
Robert Hickman
b9583c43ac Working on rotating images.
So far only 90 degree rotation is supported.
Only the image is currently being rotated.
Overlays, debugger, and the navigator still need to be updated to support rotation.
2013-08-13 16:32:04 -06:00
Ian Gilman
7391561dcd OpenSeadragon.now() returned undefined the first time; fixed 2013-07-10 09:31:22 -07:00
Chris Adams
9de45ba281 Refactor OpenSeadragon.makeCenteredNode
* Use CSS display tables for vertical centering (tested back to IE8)
* Use the DOM instead of string concatenation
* Remove redundant styles ($.makeNeutralElement sets the same values
  for margin, padding & border)
* Return the outer wrapper element to ease DOM addition & removal
2013-06-28 15:52:48 -04:00
Chris Adams
7f42dfc032 code style 2013-06-28 15:01:56 -04:00
Chris Adams
fb7c91acd2 code style 2013-06-28 14:54:44 -04:00
Chris Adams
464428cef7 makeAjaxRequest: don't set request to null
Setting onreadystatechange can avoid the possibility of it somehow being
called twice but there's no point in nulling the request right before we
let the GC collect it.
2013-06-28 14:00:02 -04:00
Chris Adams
db38b71dd9 makeAjaxRequest: throw error for missing callback 2013-06-27 16:03:43 -04:00
Chris Adams
1c6a57c710 makeAjaxRequest: log all errors, test callback
* All AJAX errors will log to the console
* The onError callback will only be called if defined
2013-06-27 16:03:41 -04:00
Chris Adams
5eccdfee98 Better match project style 2013-06-27 15:58:09 -04:00
Chris Adams
496b7d757b Simplify OpenSeadragon.makeAjaxRequest
* Since async is always true – and browsers are starting to deprecate
  synchronous XHR – we were able to prune considerable amount of code
* Add an error callback to match the existing success callback
2013-06-27 15:58:09 -04:00
iangilman
8fe0ce26b8 Merge pull request #136 from acdha/jshint-cleanup
JSHint tidying
2013-06-26 09:37:08 -07:00
Chris Adams
f2cba16a8b Safe cleanup in makeAjaxRequest error handler
Previously `request.onreadystatechange` was assigned an empty function
on success but null on failures, which breaks in IE (see
http://jsbin.com/ezozax/6/).

This patch simply mimics the success behaviour in the cleanup function

Closes #143
2013-06-25 14:13:45 -04:00
Chris Adams
c2107fcb22 Declare _processDZIError directly on OpenSeadragon 2013-06-21 16:37:31 -04:00
Kevin Ewing
8896c2278d Fixed mistake 2013-06-20 13:31:04 -07:00
Kevin Ewing
248852c15f Implementing OpenSeadragon.now()
Replacing both `+new Date()` and `new Date().getTime()` with `$.now()`
2013-06-20 13:15:04 -07:00
Chris Adams
adc4147304 Expose semi-private processDZIError for use by DziTileSource
This previously wasn't in scope outside of the main OpenSeadragon
closure. Now it's exposed with an underscore prefix to encourage people
not to think of it as a public interface.
2013-06-20 15:12:54 -04:00
Chris Adams
51bb8ca46e openseadragon.js: fix imageFormatSupported refs 2013-06-20 15:12:54 -04:00
Chris Adams
eafc822aa8 openseadragon.js: remove unused builtin aliases 2013-06-20 15:12:54 -04:00
Chris Adams
8c433ba81c Declare assumed globals 2013-06-20 15:12:54 -04:00
Chris Adams
643ee211ca Remove unused variables
Mostly unused function arguments but there were also a fair number
of legacy names which are now no longer used.

One question which comes up – mostly in tilesource.js – is whether
there is any value in leaving unused variables for functions which
are intended to be overridden anyway. I'm inclined to say that the
docs + tests need to be sufficient as there's no enforcement that
whatever is in the base implementation will actually be followed by
any of the real functions.
2013-06-20 15:12:53 -04:00
iangilman
6e9a300d1a Merge pull request #133 from iangilman/raf
Improved requestAnimationFrame polyfill; fixed timer leaks; added tests
2013-06-20 09:52:10 -07:00
Kevin Ewing
0984106983 Added missing semicolon 2013-06-20 09:08:21 -07:00
Kevin Ewing
2f8a26fda0 Responding to feedback
Function now re-assigns itself on the first go round to avoid doing the
check every time it is called
2013-06-19 15:13:56 -07:00
Ian Gilman
e0282a3c86 Stripped whitespace 2013-06-19 13:33:01 -07:00
Kevin Ewing
ebffea5a34 Merge branch 'master' into now 2013-06-19 11:23:42 -07:00
Ian Gilman
8e88f36098 Merge branch 'master' into raf
Fixed Conflicts:
	src/viewer.js
2013-06-19 11:19:54 -07:00
Kevin Ewing
e8408c1313 Moved to better location 2013-06-19 11:16:45 -07:00
Kevin Ewing
6a3b7cfb2f Added OpenSeadragon.now() 2013-06-19 10:57:09 -07:00
Chris Adams
9f6f164d9f Remove all whitespace
The results of running this command::

    find . -name \*.js -print0 | xargs -0 perl -p -i -e "s|[ \t]+$||"

(Split from #136)
2013-06-19 13:33:27 -04:00
Ian Gilman
4022206261 Removed the parens around new Date call, for consistency 2013-06-19 10:03:44 -07:00
Ian Gilman
2e48239056 Addressing code review comments 2013-06-19 09:58:22 -07:00
Ian Gilman
0112f6a4ea Improved requestAnimationFrame polyfill
Processes all outstanding frame requests per frame, rather than one at
a time.
2013-06-17 11:28:42 -07:00
Ventero
0093153e4e Simplify setting element opacity.
This simplifies setElementOpacity by removing support for the
obsolete, IE-only element.filters property. Also removes a variable
that previously leaked into the global scope.
2013-06-13 19:09:47 +02:00
Ian Gilman
300167bcf1 Merge branch 'master' into ratio 2013-06-13 09:41:01 -07:00
houseofyin
3e24be12e0 Merge branch 'master' of github.com:openseadragon/openseadragon into issue37-navigator 2013-06-01 14:12:04 -04:00
Ian Gilman
83060156a6 Merge branch 'master' into ratio 2013-05-31 09:18:25 -07:00
Robert Hickman
699a5dd101 Adding documentation about navPrevNextWrap. 2013-05-30 12:46:54 -06:00
Ian Gilman
b34f460fb0 Reverting minPixelRatio to 0.5 for better quality 2013-05-30 10:07:34 -07:00
Robert Hickman
b5d977d593 Adding an option that allows the previous and next buttons to wrap around past the end or beginning images. 2013-05-29 17:10:45 -06:00
houseofyin
6385b0a296 Merge branch 'master' of github.com:openseadragon/openseadragon into issue37-navigator 2013-05-26 21:17:01 -04:00
houseofyin
f632d98730 Working on follow-up on the initial pull request. Changing the default navigator display property, and starting work on the docs 2013-05-26 21:16:56 -04:00
Ian Gilman
8e37633c49 Whitespace nits 2013-05-24 09:17:26 -07:00
Ian Gilman
8f53c564da Our requestAnimationFrame no longer changes the global window object 2013-05-23 09:48:38 -07:00
Chris Adams
568d6a1c6b Paranoid requestAnimationFrame for antique Firefox
Very old versions of Firefox - e.g. Firefox 7 - have
window.requestAnimationFrame but not cancelAnimationFrame. This is a
very old release so the easiest fix is simply to check for both of the
functions which we intend to call and fall back on traditional behaviour
if both aren't present.
2013-05-23 10:17:41 -04:00
Ian Gilman
c3772df011 Now trying standard path first in createAjaxRequest
As suggested by @cskwg in #98
2013-05-21 10:39:10 -07:00
houseofyin
bb4a8a0b4f Bringing back in sync with the latest baseline 2013-05-17 22:29:08 -04:00
Ian Gilman
2566b2f5cf Separated file JSDoc comment from root object JSDoc comment; fixes doc building 2013-05-14 10:28:44 -07:00
iangilman
0b366d7b42 Merge pull request #89 from bgilbert/license
Revert to original New BSD license; clean up license declarations
2013-05-14 09:15:00 -07:00
Benjamin Gilbert
17a6ee15b1 Include 2010 in "OpenSeadragon contributors" copyright dates
This Git repository starts in 2011, but the CodePlex Mercurial repository
has commits from 2010.
2013-05-13 23:32:09 -04:00
Benjamin Gilbert
522bcbf058 Add addClass()/removeClass() utility functions 2013-05-12 22:53:41 -04:00
Benjamin Gilbert
2f2eba8df2 Add "OpenSeadragon contributors" copyright statement
The license text will be provided on the website, etc., and it seems
strange to list no copyright date newer than the original CodePlex
copyright from the AJAX Control Toolkit.  Add a blanket copyright
statement for contributions to the OpenSeadragon project, stating that
copyright is held by the authors of each contribution.  This blanket
statement is not intended to preclude individual contributors from
attaching their own copyright statements to their modifications.
2013-05-12 17:12:26 -04:00
Benjamin Gilbert
52badbef36 Add MIT license blocks to src/openseadragon.js
for code taken from jQuery and from mattsnider.com.

Ideally we'd keep the MIT-licensed helper code in a separate file,
but it proved difficult to extricate from the rest of openseadragon.js.

Also remove comment about plagiarism.  It's not plagiarism if it's
attributed and properly licensed.
2013-05-10 00:57:49 -04:00
Benjamin Gilbert
a7c96c56ef Drop MIT license; move BSD license to root directory
All OpenSeadragon contributors have granted their permission for this
relicensing in #58.

Drop copyright statements for Ian Gilman and Christopher Thatcher as
they requested in #10.

Revert CodePlex Foundation copyright date to 2009 pursuant to discussion
in #10.
2013-05-10 00:16:55 -04:00
Benjamin Gilbert
be20645876 Add BSD license block and CodePlex copyright to each source file
See discussion in #10.
2013-05-10 00:16:55 -04:00
houseofyin
bbf0fc4302 Updated to address feedbac from @iangilman 2013-04-04 22:30:59 -04:00
thatcher
86f101f02c refs #54 - pointing deprecated method at correct current method. 2013-03-26 09:25:56 -04:00
thatcher
266f33094c addresses #54, dont use openDZI, use open. openDZI now calls open. all the details of tileHost were already handled in DZITileSource.configure. $.createFromDZI is fully deprecated and will throw an error. 2013-03-26 09:02:34 -04:00
houseofyin
7187bca4e7 Merge branch 'master' of github.com:openseadragon/openseadragon into issue37-navigator 2013-03-18 14:38:10 -04:00
houseofyin
3b2bde2940 Initial pass at making the navigator float 2013-03-15 10:59:47 -04:00
thatcher
10f60c88cb minImageRatio should never be set below 1 unless you want to load the Nth level tiles to level N-M, which effectively throttles network requests and draw animations but does not produce a better picture 2013-03-14 08:12:01 -04:00
thatcher
0b75a2f259 tweaking default setting to find optimal performance point while preserving responsivness 2013-03-14 07:22:27 -04:00
thatcher
537ea0b844 simplifying zoom settings so scroll and click arent significantly different 2013-03-14 07:22:26 -04:00
thatcher
464cf076a6 simplifying zoom settings so scroll and click arent significantly different 2013-03-14 07:22:26 -04:00
thatcher
a5421917a4 minZoomImageRatio should not be less than minPixelRatio to avoid blurry full zoom out. Its worth noting now that several options are 'coupled' but dont have logic which addresses the coupling so as to avoid ill affects from settings that dont make sense for how they are coupled. 2013-03-14 07:22:26 -04:00
thatcher
86e27c18f7 what was initally a feature branch to work on just canvas prerender, evolved into a feature branch focused on broader ideas discussed in issue #4 - I've basically been able to reduce time spent in drawTile by half. good stuff, thanks to dustmoo for getting us looking into this 2013-03-14 07:22:26 -04:00
Ian Gilman
b4ddb5a953 Improved build banners, including making them visible in minified version 2013-03-11 11:52:30 -07:00
Chris Thatcher
c164e8fac5 Merge pull request #24 from openseadragon/fullscreen
Fullscreen native javascript support now available. will increment build id and publish.  Thanks ventero and iangilman for your reviews.
2013-03-07 20:57:11 -08:00
thatcher
5203cc14b0 removing extra whitespace per pull request review 2013-03-07 23:50:27 -05:00
thatcher
3801326e40 pulling full screen api detection out into is own file per ians suggestion 2013-03-06 15:36:52 -05:00
thatcher
096b02d1c8 addressing typo in comment pointed out by @iangilian 2013-03-06 06:03:05 -05:00
thatcher
b560a06c30 correcting comment per ventero's review 2013-02-28 16:19:04 -05:00
thatcher
e56632c96f blendTime needs to be equal to animationTime to avoid blurred images 2013-02-28 15:56:50 -05:00
thatcher
2819ff14e5 reverting a couple changes to core openseadragon options unrelated to issue #2 . will explore these in #4 were they have already been referenced. 2013-02-28 15:55:24 -05:00
thatcher
807cdd337c cant set blendTime to 0, causes strange behavior in navigator and lip tile sources. should have made the basic config changes in #2 and #3 in a diferent branch related to #4. will do before pulling 2013-02-28 15:55:24 -05:00
thatcher
6d3ddd8095 by feel, best performance, changed immediateRender to true, springStiffness to 7 - issue #2 2013-02-28 15:55:24 -05:00
thatcher
5b6a2f5873 basic implementation of issue #2 2013-02-28 15:55:24 -05:00
thatcher
a4477cd765 better encapsulation of native fullscreen api 2013-02-28 15:34:44 -05:00
thatcher
a18460a310 reverting a couple changes to core openseadragon options unrelated to issue #3 . will explore these in #4 were they have already been referenced. 2013-02-28 15:34:43 -05:00
thatcher
d4b02e1aba managed to get a more complete, though hacky, implementation of #3. the big sticky point was how firefox and safari beahved when switching between applications when already in full screen mode. because we didnt have an event listener for fullscreenchange, and because those browsers released full screen on application or window change (think alt+tab or cmd+tab), you would come back to a empty document. more work left here to make this worth merging into master 2013-02-28 15:34:43 -05:00
thatcher
2372968518 refs #4 - have noticed navigator is often blurry when rendered. changing blendTime can alleviate or worsen this issue if it is more or less than the animationTime (respectively). Im setting this to the value equal to animationTime as a hot patch while we figure out why these two variables are coupled. 2013-02-26 23:52:23 -05:00
Ian Gilman
4e51b642ef Now properly setting version in build 2013-02-14 12:02:17 -08:00
thatcher
a0fd2b3324 added inital support for moving to a nodejs build with grunt. build only includes concant and lint. fixed all lint warning where appropriate and added lint inline ignores where appropriate. when build script is complete we will start transition to new repo. also currently researching how to prune unfriendly portion of history that make repo large due to large binary files in web app. I like git well enough but using branches for web apps unrelated to code base has made me weary once again of social web fads that force convention without long term consideration of cost. 2013-02-12 22:40:08 -05:00
thatcher
792165fdf9 accidently left alwaysBlend global defaul set to true during development. Looking forward to our new org based repo where I'll be constrained more than my current wild-west repo, sorry. corrections also to pan constrainment details which came to the forefront while working on collections zoom and panconstraints. Added new ui feature page to demo basics. 2013-02-05 21:26:40 -05:00
thatcher
f863f5fcae changing drawHTML routine to avoid ie rendering issue 2013-02-01 15:18:53 -05:00