Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Unified Diff: remoting/webapp/me2mom/ui_mode.js

Issue 8416007: Refactored web-app (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/webapp/me2mom/remoting.js ('k') | remoting/webapp/me2mom/util.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/webapp/me2mom/ui_mode.js
diff --git a/remoting/webapp/me2mom/ui_mode.js b/remoting/webapp/me2mom/ui_mode.js
new file mode 100644
index 0000000000000000000000000000000000000000..e3d54a6746a325a5636bea67c3a42f9f23725487
--- /dev/null
+++ b/remoting/webapp/me2mom/ui_mode.js
@@ -0,0 +1,78 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview
+ * Functions related to controlling the modal ui state of the app.
+ */
+
+'use strict';
+
+/** @suppress {duplicate} */
+var remoting = remoting || {};
+
+/** @enum {string} */
+remoting.AppMode = {
+ HOME: 'home',
+ UNAUTHENTICATED: 'auth',
+ CLIENT: 'client',
+ CLIENT_UNCONNECTED: 'client.unconnected',
+ CLIENT_CONNECTING: 'client.connecting',
+ CLIENT_CONNECT_FAILED: 'client.connect-failed',
+ CLIENT_SESSION_FINISHED: 'client.session-finished',
+ HOST: 'host',
+ HOST_WAITING_FOR_CODE: 'host.waiting-for-code',
+ HOST_WAITING_FOR_CONNECTION: 'host.waiting-for-connection',
+ HOST_SHARED: 'host.shared',
+ HOST_SHARE_FAILED: 'host.share-failed',
+ HOST_SHARE_FINISHED: 'host.share-finished',
+ IN_SESSION: 'in-session'
+};
+
+/**
+ * @type {remoting.AppMode} The current app mode
+ */
+remoting.currentMode;
+
+/**
+ * Change the app's modal state to |mode|, which is considered to be a dotted
+ * hierachy of modes. For example, setMode('host.shared') will show any modal
+ * elements with an data-ui-mode attribute of 'host' or 'host.shared' and hide
+ * all others.
+ *
+ * @param {remoting.AppMode} mode The new modal state, expressed as a dotted
+ * hiearchy.
+ */
+remoting.setMode = function(mode) {
+ var modes = mode.split('.');
+ for (var i = 1; i < modes.length; ++i)
+ modes[i] = modes[i - 1] + '.' + modes[i];
+ var elements = document.querySelectorAll('[data-ui-mode]');
+ for (var i = 0; i < elements.length; ++i) {
+ var element = /** @type {Element} */ elements[i];
+ var hidden = true;
+ for (var m = 0; m < modes.length; ++m) {
+ if (hasClass(element.getAttribute('data-ui-mode'), modes[m])) {
+ hidden = false;
+ break;
+ }
+ }
+ element.hidden = hidden;
+ }
+ remoting.debug.log('App mode: ' + mode);
+ remoting.currentMode = mode;
+ if (mode == remoting.AppMode.IN_SESSION) {
+ document.removeEventListener('keydown', remoting.DebugLog.onKeydown, false);
+ } else {
+ document.addEventListener('keydown', remoting.DebugLog.onKeydown, false);
+ }
+};
+
+/**
+ * Get the major mode that the app is running in.
+ * @return {string} The app's current major mode.
+ */
+remoting.getMajorMode = function() {
+ return remoting.currentMode.split('.')[0];
+};
« no previous file with comments | « remoting/webapp/me2mom/remoting.js ('k') | remoting/webapp/me2mom/util.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698