Labs/Jetpack/JEP/10: Difference between revisions

From MozillaWiki
< Labs‎ | Jetpack‎ | JEP
Jump to navigation Jump to search
Line 21: Line 21:
Clipboard access will live at <code>jetpack.os.clipboard</code>. The <code>jetpack.os</code> will provide access to anything that relates to the OS (file access, OS info, etc.)
Clipboard access will live at <code>jetpack.os.clipboard</code>. The <code>jetpack.os</code> will provide access to anything that relates to the OS (file access, OS info, etc.)


'''Setting the clipboard'''
==== Setting the clipboard ====


<pre class="brush:js;toolbar:false;">
<pre class="brush:js;toolbar:false;">
Line 29: Line 29:
''Arguments''
''Arguments''


* <code>data</code>: The value to be placed into the system clipboard. It can be anything, a string, a unicode string, a number, an image, and HTML fragment, etc.
<code>data</code>: The value to be placed into the system clipboard. It can be anything, a string, a unicode string, a number, an image, and HTML fragment, etc.
* <code>dataType</code> (optional): Let's Jetpack know what kind of data is being passed in, in [http://en.wikipedia.org/wiki/Internet_media_type mime-type format]. For example, a unicode string would take <code>"text/unicode"</code>, HTML would be <code>"text/html"</code>, and an PNG would be <code>"image/png"</code>. If <code>dataType</code> isn't passed in, Jetpack makes its best guess.
 
<code>dataType</code> (optional): Let's Jetpack know what kind of data is being passed in, in [http://en.wikipedia.org/wiki/Internet_media_type mime-type format]. For example, a unicode string would take <code>"text/unicode"</code>, HTML would be <code>"text/html"</code>, and an PNG would be <code>"image/png"</code>. If <code>dataType</code> isn't passed in, Jetpack makes its best guess.


<pre class="brush:js;toolbar:false;">
<pre class="brush:js;toolbar:false;">
Line 40: Line 41:
''Arguments''
''Arguments''


* <code>options</code>: A dictionary containing key-value pairs of <code>data</code> and <code>dataType</code>.
<code>options</code>: A dictionary containing key-value pairs of <code>data</code> and <code>dataType</code>.
 
''Examples''


An example of setting the clipboard in action is as follows:
An example of setting the clipboard in action is as follows:

Revision as of 11:17, 27 May 2009

Draft-template-image.png THIS PAGE IS A WORKING DRAFT Pencil-emoji U270F-gray.png
The page may be difficult to navigate, and some information on its subject might be incomplete and/or evolving rapidly.
If you have any questions or ideas, please add them as a new topic on the discussion page.

JEP 10 - Clipboard Support

  • Author: Aza Raskin <aza at mozilla dot com>
  • Champion: Aza Raskin <aza at mozilla dot com>
  • Status: Draft
  • Type: API Track
  • Created: 26 May 2009

Introduction and Rationale

This JEP describes OS clipboard access to the Jetpack API.

A number of Jetpacks have already implemented their own versions of clipboard access. It makes sense to unify the API and allow for a clean way for Jetpacks to get and set the clipboard in a variety of formats.

As part of this proposal is adding a jetpack.os namespace.

Proposal

Clipboard access will live at jetpack.os.clipboard. The jetpack.os will provide access to anything that relates to the OS (file access, OS info, etc.)

Setting the clipboard

jetpack.os.clipboard.set( options )

Arguments

data: The value to be placed into the system clipboard. It can be anything, a string, a unicode string, a number, an image, and HTML fragment, etc.

dataType (optional): Let's Jetpack know what kind of data is being passed in, in mime-type format. For example, a unicode string would take "text/unicode", HTML would be "text/html", and an PNG would be "image/png". If dataType isn't passed in, Jetpack makes its best guess.

jetpack.os.clipboard.set( options )

Often it is necessary to put multiple formats/views of the same data into the clipboard. This way, when another program tries to access the data stored in the system clipboard, it can get the data in the format it knows how to handle.

Arguments

options: A dictionary containing key-value pairs of data and dataType.

Examples

An example of setting the clipboard in action is as follows:

var words = "The quick brown fox jumped over the lazy dog.";
jetpack.os.clipboard.set( words );

var html = "<div>Hello <i>there!</i></div>";
jetpack.os.clipboard.set( html, "text/html" );

jetpack.os.clipboard.set({
  "hai2u", "text/plain",
  "hai<b>2u</b>", "text/html",
  "はい2u", "text/unicode"
});

Getting the clipboard

var value = jetpack.os.clipboard.get()