forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding Ubuntu Unity Web API definition
Includes basic tests for the definition.
- Loading branch information
Showing
3 changed files
with
219 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
// Type definitions for Ubuntu Unity Web API 1.0 | ||
// Project: https://launchpad.net/libunity-webapps | ||
// Definitions by: John Vrbanac <[email protected]> | https://github.com/jmvrbanac | ||
// Definitions: https://github.com/borisyankov/DefinitelyTyped | ||
|
||
declare class UnitySettings { | ||
public name:String; | ||
public iconUrl:String; | ||
public onInit:Function; | ||
} | ||
|
||
enum UnityPlaybackState { | ||
Playing, | ||
Paused | ||
} | ||
|
||
declare class UnityTrackMetadata { | ||
title:String; | ||
|
||
// Optionals | ||
album:String; | ||
artist:String; | ||
artLocation:String; | ||
} | ||
|
||
interface UnityMediaPlayer { | ||
setTrack(trackMetadata:UnityTrackMetadata); | ||
|
||
onPrevious(onPreviousCallback:Function); | ||
onNext(onNextCallback:Function); | ||
onPlayPause(onPlayPauseCallback:Function); | ||
|
||
getPlaybackstate(response:Function); | ||
setPlaybackstate(state:UnityPlaybackState); | ||
|
||
setCanGoNext(cangonext:Boolean); | ||
setCanGoPrev(cangoprev:Boolean); | ||
setCanPlay(canplay:Boolean); | ||
setCanPause(canpause:Boolean); | ||
} | ||
|
||
interface UnityNotification { | ||
showNotification (summary:String, body:String, iconUrl?:String); | ||
} | ||
|
||
declare class UnityIndicatorProperties { | ||
public count:Number; | ||
public time:Date; | ||
public iconURI:String; | ||
public onIndicatorActivated:Function; | ||
} | ||
|
||
interface UnityMessagingIndicator { | ||
showIndicator(name:String, indicatorProperties:UnityIndicatorProperties); | ||
clearIndicator(name:String); | ||
clearIndicators(); | ||
|
||
addAction(name:String, onActionInvoked:Function); | ||
removeAction(name:String); | ||
removeActions(); | ||
onPresenceChanged(onPresenceChanged:Function); | ||
|
||
// This is suppose to be readonly, but i'm not sure how to do this | ||
// in a definition file. | ||
presence:String; | ||
} | ||
|
||
interface UnityLauncher { | ||
setCount(count:number); | ||
clearCount(); | ||
|
||
setProgress(progress:number); | ||
clearProgress(); | ||
|
||
setUrgent(urgent:Boolean); | ||
|
||
addAction(name:String, onActionInvoked:Function); | ||
removeAction(name:String); | ||
removeActions(); | ||
} | ||
|
||
interface Unity { | ||
init(settings:UnitySettings); | ||
addAction(name:String, callback:Function); | ||
removeAction(actionName:String); | ||
removeActions(); | ||
|
||
Notification:UnityNotification; | ||
MediaPlayer:UnityMediaPlayer; | ||
MessagingIndicator:UnityMessagingIndicator; | ||
Launcher:UnityLauncher; | ||
} | ||
|
||
interface BrowserPublic { | ||
getUnityObject(version:number):Unity; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,65 @@ | ||
DefinitelyTyped | ||
=============== | ||
|
||
TypeScript type definitions repository for popular JavaScript libraries. | ||
|
||
The project aims to provide *high quality* definitions for the most popular libraries out there. | ||
|
||
Complete | ||
-------- | ||
* [AngularJS](http://angularjs.org) (by [Diego Vilar](https://github.com/diegovilar)) ([wiki](https://github.com/borisyankov/DefinitelyTyped/wiki/AngularJS-Definitions-Usage-Notes)) | ||
* [async](https://github.com/caolan/async) | ||
* [Backbone.js](http://backbonejs.org/) | ||
* [Bootstrap](http://twitter.github.com/bootstrap/) | ||
* [CodeMirror](http://codemirror.net) (by [François de Campredon](https://github.com/fdecampredon)) | ||
* [Chosen](http://harvesthq.github.com/chosen/) | ||
* [dynatree](http://code.google.com/p/dynatree/) (by [François de Campredon](https://github.com/fdecampredon)) | ||
* [EaselJS](http://www.createjs.com/#!/EaselJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) | ||
* [ember.js](http://emberjs.com/) | ||
* [Express](http://expressjs.com/) | ||
* [Fancybox](http://fancybox.net/) | ||
* [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper)) | ||
* [Handlebars](http://handlebarsjs.com/) | ||
* [History.js](https://github.com/balupton/History.js/) | ||
* [Humane.js](http://wavded.github.com/humane-js/) (by [John Vrbanac](https://github.com/jmvrbanac)) | ||
* [Impress.js](https://github.com/bartaz/impress.js) | ||
* [Jasmine](http://pivotal.github.com/jasmine/) | ||
* [jQuery.Globalize](https://github.com/jquery/globalize) | ||
* [jQuery](http://jquery.com/) (from TypeScript samples) | ||
* [jQuery Mobile](http://jquerymobile.com) | ||
* [jQuery UI](http://jqueryui.com/) | ||
* [Knockback](http://kmalakoff.github.com/knockback/) (by [Marcel Binot](https://github.com/docgit)) | ||
* [Knockout.js](http://knockoutjs.com/) | ||
* [Knockout.Mapping](https://github.com/SteveSanderson/knockout.mapping) | ||
* [linq.js](http://linqjs.codeplex.com/) (by Marcin Najder (https://github.com/marcinnajder)) | ||
* [Modernizr](http://modernizr.com/) | ||
* [Moment.js](https://github.com/timrwood/moment) (by [Michael Lakerveld](https://github.com/Lakerfield)) | ||
* [Mustache.js](https://github.com/janl/mustache.js) | ||
* [Node.js](http://nodejs.org/) (from TypeScript samples) | ||
* [node_redis](https://github.com/mranney/node_redis) | ||
* [node-sqlserver](https://github.com/WindowsAzure/node-sqlserver) | ||
* [PhoneGap](http://phonegap.com) | ||
* [PreloadJS](http://www.createjs.com/#!/PreloadJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) | ||
* [QUnit](http://qunitjs.com/) (by [Diullei Gomes](https://github.com/Diullei)) | ||
* [Raphael](http://raphaeljs.com/) (by [CheCoxshall](https://github.com/CheCoxshall)) | ||
* [Sammy.js](http://sammyjs.org/) | ||
* [SoundJS](http://www.createjs.com/#!/SoundJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) | ||
* [Spin](http://fgnass.github.com/spin.js/) | ||
* [Sugar](http://sugarjs.com/) (by Josh Baldwin)(https://github.com/jbaldwin/) | ||
* [Teechart](http://www.steema.com) (by [Steema]) (http://www.steema.com) | ||
* [Toastr](https://github.com/CodeSeven/toastr) | ||
* [TweenJS](http://www.createjs.com/#!/TweenJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) | ||
* [Underscore.js](http://underscorejs.org/) | ||
* [Underscore.js (Typed)](http://underscorejs.org/) (by Josh Baldwin)(https://github.com/jbaldwin/) | ||
|
||
Next | ||
---- | ||
* Facebook SDK | ||
* jQuery.Validate | ||
* google.visualization | ||
* Meteor | ||
* Isotope | ||
* Zepto | ||
* Socket.IO | ||
DefinitelyTyped | ||
=============== | ||
|
||
TypeScript type definitions repository for popular JavaScript libraries. | ||
|
||
The project aims to provide *high quality* definitions for the most popular libraries out there. | ||
|
||
Complete | ||
-------- | ||
* [AngularJS](http://angularjs.org) (by [Diego Vilar](https://github.com/diegovilar)) ([wiki](https://github.com/borisyankov/DefinitelyTyped/wiki/AngularJS-Definitions-Usage-Notes)) | ||
* [async](https://github.com/caolan/async) | ||
* [Backbone.js](http://backbonejs.org/) | ||
* [Bootstrap](http://twitter.github.com/bootstrap/) | ||
* [CodeMirror](http://codemirror.net) (by [Franois de Campredon](https://github.com/fdecampredon)) | ||
* [Chosen](http://harvesthq.github.com/chosen/) | ||
* [dynatree](http://code.google.com/p/dynatree/) (by [Franois de Campredon](https://github.com/fdecampredon)) | ||
* [EaselJS](http://www.createjs.com/#!/EaselJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) | ||
* [ember.js](http://emberjs.com/) | ||
* [Express](http://expressjs.com/) | ||
* [Fancybox](http://fancybox.net/) | ||
* [GoogleMaps](https://developers.google.com/maps/) (by [Esben Nepper](https://github.com/eNepper)) | ||
* [Handlebars](http://handlebarsjs.com/) | ||
* [History.js](https://github.com/balupton/History.js/) | ||
* [Humane.js](http://wavded.github.com/humane-js/) (by [John Vrbanac](https://github.com/jmvrbanac)) | ||
* [Impress.js](https://github.com/bartaz/impress.js) | ||
* [Jasmine](http://pivotal.github.com/jasmine/) | ||
* [jQuery.Globalize](https://github.com/jquery/globalize) | ||
* [jQuery](http://jquery.com/) (from TypeScript samples) | ||
* [jQuery Mobile](http://jquerymobile.com) | ||
* [jQuery UI](http://jqueryui.com/) | ||
* [Knockback](http://kmalakoff.github.com/knockback/) (by [Marcel Binot](https://github.com/docgit)) | ||
* [Knockout.js](http://knockoutjs.com/) | ||
* [Knockout.Mapping](https://github.com/SteveSanderson/knockout.mapping) | ||
* [linq.js](http://linqjs.codeplex.com/) (by Marcin Najder (https://github.com/marcinnajder)) | ||
* [Modernizr](http://modernizr.com/) | ||
* [Moment.js](https://github.com/timrwood/moment) (by [Michael Lakerveld](https://github.com/Lakerfield)) | ||
* [Mustache.js](https://github.com/janl/mustache.js) | ||
* [Node.js](http://nodejs.org/) (from TypeScript samples) | ||
* [node_redis](https://github.com/mranney/node_redis) | ||
* [node-sqlserver](https://github.com/WindowsAzure/node-sqlserver) | ||
* [PhoneGap](http://phonegap.com) | ||
* [PreloadJS](http://www.createjs.com/#!/PreloadJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) | ||
* [QUnit](http://qunitjs.com/) (by [Diullei Gomes](https://github.com/Diullei)) | ||
* [Raphael](http://raphaeljs.com/) (by [CheCoxshall](https://github.com/CheCoxshall)) | ||
* [Sammy.js](http://sammyjs.org/) | ||
* [SoundJS](http://www.createjs.com/#!/SoundJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) | ||
* [Spin](http://fgnass.github.com/spin.js/) | ||
* [Sugar](http://sugarjs.com/) (by Josh Baldwin)(https://github.com/jbaldwin/) | ||
* [Teechart](http://www.steema.com) (by [Steema]) (http://www.steema.com) | ||
* [Toastr](https://github.com/CodeSeven/toastr) | ||
* [TweenJS](http://www.createjs.com/#!/TweenJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) | ||
* [Ubuntu Unity Web API](https://launchpad.net/libunity-webapps) (by [John Vrbanac](https://github.com/jmvrbanac)) | ||
* [Underscore.js](http://underscorejs.org/) | ||
* [Underscore.js (Typed)](http://underscorejs.org/) (by Josh Baldwin)(https://github.com/jbaldwin/) | ||
|
||
Next | ||
---- | ||
* Facebook SDK | ||
* jQuery.Validate | ||
* google.visualization | ||
* Meteor | ||
* Isotope | ||
* Zepto | ||
* Socket.IO | ||
* MongoDB |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
/// <reference path="../Definitions/UnityWebApi-1.0.d.ts" /> | ||
|
||
var Unity = external.getUnityObject(1.0); | ||
var settings = new UnitySettings(); | ||
Unity.init(settings); | ||
|
||
// Actions | ||
Unity.addAction("boom", function() {}); | ||
Unity.removeAction("boom"); | ||
Unity.removeActions(); | ||
|
||
// Notification | ||
Unity.Notification.showNotification("sum", "body"); | ||
Unity.Notification.showNotification("sum", "body", "optional"); | ||
|
||
// Messaging | ||
var props = new UnityIndicatorProperties(); | ||
props.count = 0; | ||
props.time = new Date(); | ||
|
||
Unity.MessagingIndicator.showIndicator("boom", props); | ||
Unity.MessagingIndicator.clearIndicator("boom"); | ||
Unity.MessagingIndicator.clearIndicators(); | ||
|
||
Unity.MessagingIndicator.addAction("boom", function() {}); | ||
Unity.MessagingIndicator.removeAction("boom"); | ||
Unity.MessagingIndicator.removeActions(); | ||
Unity.MessagingIndicator.onPresenceChanged(function() {}); | ||
|
||
// Launcher | ||
Unity.Launcher.setCount(1); | ||
Unity.Launcher.clearCount(); | ||
|
||
Unity.Launcher.setProgress(100); | ||
Unity.Launcher.clearProgress(); | ||
|
||
Unity.Launcher.setUrgent(true); | ||
|
||
Unity.Launcher.addAction("boom", function(){}); | ||
Unity.Launcher.removeAction("boom"); | ||
Unity.Launcher.removeActions(); | ||
|
||
|
||
// MediaPlayer | ||
var metadata = new UnityTrackMetadata(); | ||
Unity.MediaPlayer.setTrack(metadata); | ||
|
||
Unity.MediaPlayer.onPrevious(function(){}); | ||
Unity.MediaPlayer.onNext(function(){}); | ||
Unity.MediaPlayer.onPlayPause(function(){}); | ||
|
||
Unity.MediaPlayer.getPlaybackstate(function(){}); | ||
Unity.MediaPlayer.setPlaybackstate(UnityPlaybackState.Playing); | ||
|
||
Unity.MediaPlayer.setCanGoNext(true); | ||
Unity.MediaPlayer.setCanGoPrev(true); | ||
Unity.MediaPlayer.setCanPlay(true); | ||
Unity.MediaPlayer.setCanPause(true); |