diff --git a/zynga-scroller/zynga-scroller-tests.ts b/zynga-scroller/zynga-scroller-tests.ts new file mode 100644 index 0000000000..575c8f3fc8 --- /dev/null +++ b/zynga-scroller/zynga-scroller-tests.ts @@ -0,0 +1,36 @@ +/// + +var scroller: Scroller = new Scroller((left, top, zoom) => { }); +scroller = new Scroller((left, top, zoom) => { }, { + scrollingX: true, + scrollingY: true, + animating: true, + animationDuration: 400, + bouncing: false, + locking: false, + paging: false, + snapping: true, + zooming: 10, + minZoom: 1, + maxZoom: 2, +}); + +scroller.setDimensions(10, 10, 10, 10); +scroller.setPosition(200, 300); +scroller.setSnapSize(300, 300); +scroller.activatePullToRefresh(200, () => { }, () => { }, () => { }); +scroller.finishPullToRefresh(); +var data: { + left: number, + top: number, + zoom: number +} = scroller.getValues(); +scroller.zoomTo(10); +scroller.zoomBy(10); +scroller.doMouseZoom(10, 10, 10, 10); +scroller.doTouchStart({ + pageX: 10, + pageY: 20 +}, 200); +scroller.doTouchMove([10], 200); +scroller.doTouchEnd(300); \ No newline at end of file diff --git a/zynga-scroller/zynga-scroller.ts b/zynga-scroller/zynga-scroller.ts new file mode 100644 index 0000000000..9e1e4bb926 --- /dev/null +++ b/zynga-scroller/zynga-scroller.ts @@ -0,0 +1,49 @@ +// Type definitions for Zynga Scroller +// Definitions by: Marcelo Haskell Camargo +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare class Scroller { + constructor(a: (left: number, top: number, zoom: number) => void, b?: { + scrollingX?: boolean, + scrollingY?: boolean, + animating?: boolean, + animationDuration?: number, + bouncing?: boolean, + locking?: boolean, + paging?: boolean, + snapping?: boolean, + zooming?: number, + minZoom?: number, + maxZoom?: number + }); + setDimensions(clientWidth: number, clientHeight: number, contentWidth: number, + contentHeight: number): void; + setPosition(clientLeft: number, clientTop: number): void; + setSnapSize(width: number, height: number); + activatePullToRefresh(height: number, activate: () => void, + deactivate: () => void, start: () => void); + finishPullToRefresh(): void; + getValues(): { + left: number, + top: number, + zoom: number + }; + zoomTo(level: number, animate?: boolean, originLeft?: number, + originTop?: number): void; + zoomBy(factor: number, animate?: boolean, originLeft?:number, + originTop?: number): void; + scrollTo(left: number, top: number, animate?: boolean): void; + scrollBy(leftOffset: number, topOffset: number, animate?: boolean): void; + doMouseZoom(wheelData: number, timeStamp: number, pageX: number, + pageY: number): void; + doTouchStart(touches: { + pageX: number, + pageY: number, + }, timeStamp: number): void; + doTouchMove(touches: { + pageX: number, + pageY: number, + }, timeStamp: number, scale?: number): void; + doTouchMove(touches: [any], timeStamp: number); + doTouchEnd(timeStamp: number): void; +} \ No newline at end of file