Chromium Code Reviews| Index: examples/mouselock/mouselock.html |
| =================================================================== |
| --- examples/mouselock/mouselock.html (revision 0) |
| +++ examples/mouselock/mouselock.html (revision 0) |
| @@ -0,0 +1,108 @@ |
| +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| +<html> |
| +<!-- |
| +Copyright (c) 2011 The Native Client Authors. All rights reserved. |
| +Use of this source code is governed by a BSD-style license that can be |
| +found in the LICENSE file. |
| +--> |
| +<head> |
| + <meta http-equiv="Pragma" content="no-cache" /> |
| + <meta http-equiv="Expires" content="-1" /> |
| + <script type="text/javascript" src="../common/check_browser.js"></script> |
| + <script> |
| + // Check for Native Client support in the browser before the DOM loads. |
| + var isValidBrowser = false; |
| + var browserSupportStatus = 0; |
| + // Fullscreen and mouselock support is in Chrome version 16. |
| + var CHROME_MINIMUM_VERSION = 16; |
| + |
| + var checker = new browser_version.BrowserChecker( |
| + CHROME_MINIMUM_VERSION, |
| + navigator["appVersion"], |
| + navigator["plugins"]); |
| + checker.checkBrowser(); |
| + |
| + isValidBrowser = checker.getIsValidBrowser(); |
| + browserSupportStatus = checker.getBrowserSupportStatus(); |
| + |
| + function handleMessage(message_event) { |
| + console.log(message_event.data); |
| + } |
| + </script> |
| + <title>Full-screen and Mouse-lock Example</title> |
| +</head> |
| +<body title="This tooltip should not be shown if the mouse is locked."> |
| + <h1>Full-screen and Mouse-lock Example</h1> |
| + <ul> |
| + <li>There are two different kinds of fullscreen mode: "tab fullscreen" and |
| + "browser fullscreen". |
| + <ul> |
| + <li>Tab fullscreen refers to when a tab enters fullscreen mode via the |
| + JS or Pepper fullscreen API.</li> |
| + <li>Browser fullscreen refers to the user putting the browser itself |
| + into fullscreen mode from the UI (e.g., pressing F11).</li> |
| + </ul> |
| + <span style="font-weight:bold"> |
| + NOTE: Mouse lock is only allowed in "tab fullscreen" mode. |
| + </span> |
| + </li> |
| + <li>Lock mouse: |
| + <ul> |
| + <li>left click in the grey box; or</li> |
| + <li>right click in the box to ensure that it is focused and |
| + then press Enter key. (You could verify that the tooltip window is |
| + dismissed properly by this second approach.)</li> |
| + </ul> |
| + </li> |
| + <li>Unlock mouse voluntarily (i.e., NaCl module unlocks mouse): |
| + <ul> |
| + <li>press Enter.</li> |
| + </ul> |
| + </li> |
| + <li>Unlock mouse involuntarily (i.e. Chrome unlock mouse): |
|
cstefansen
2011/11/10 17:58:00
Chrome unlock -> Chrome unlocks
der Springer
2011/11/11 19:23:01
Done.
|
| + <ul> |
| + <li>lose focus; or</li> |
| + <li>press Esc key; or</li> |
| + <li>exit from the "tab fullscreen" mode.</li> |
| + </ul> |
| + </li> |
| + </ul> |
| + <p>Clicking the mouse inside the grey square takes the NaCl module to/from |
| + combined fullscreen and mouselock mode.</p> |
| + <p>While in fullscreen, pressing Enter will exit/enter mouse lock mode.</p> |
| + <!-- Load the published .nexe. This includes the 'src' attribute which |
| + shows how to load multi-architecture modules. Each entry in the "nexes" |
| + object in the .nmf manifest file is a key-value pair: the key is the runtime |
| + ('x86-32', 'x86-64', etc.); the value is a URL for the desired NaCl module. |
| + To load the debug versions of your .nexes, set the 'src' attribute to the |
| + _dbg.nmf version of the manifest file. |
| + |
| + Note: The <EMBED> element is wrapped inside a <DIV>, which has both a 'load' |
| + and a 'message' event listener attached. This wrapping method is used |
| + instead of attaching the event listeners directly to the <EMBED> element to |
| + ensure that the listeners are active before the NaCl module 'load' event |
| + fires. This also allows you to use PPB_Messaging.PostMessage() (in C) or |
| + pp::Instance.PostMessage() (in C++) from within the initialization code in |
| + your NaCl module. |
| + --> |
| + <div id="listener"> |
| + <script type="text/javascript"> |
| + if (browserSupportStatus == |
| + browser_version.BrowserChecker.StatusValues.CHROME_VERSION_TOO_OLD) { |
| + alert('This example will only work on Chrome version ' + |
| + CHROME_MINIMUM_VERSION + |
| + ' or later.'); |
| + } else { |
| + var listener = document.getElementById('listener') |
| + listener.addEventListener('message', handleMessage, true); |
| + // Create two instances of the NaCl module. |
| + listener.innerHTML = '<embed id="mouselock_view" ' + |
| + 'type="application/x-nacl" ' + |
| + 'src="mouselock.nmf" ' + |
| + 'width="300" height="300" />'; |
| + } |
| + </script> |
| + </div> |
| +</body> |
| +</html> |
| Property changes on: examples/mouselock/mouselock.html |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |