| Index: remoting/webapp/options_menu.js
|
| diff --git a/remoting/webapp/options_menu.js b/remoting/webapp/options_menu.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f68ecebcf6a506f4600c47208861c6c9e0bd0d1b
|
| --- /dev/null
|
| +++ b/remoting/webapp/options_menu.js
|
| @@ -0,0 +1,99 @@
|
| +// Copyright (c) 2014 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
|
| + * Class handling the in-session options menu (or menus in the case of apps v1).
|
| + */
|
| +
|
| +'use strict';
|
| +
|
| +/** @suppress {duplicate} */
|
| +var remoting = remoting || {};
|
| +
|
| +/**
|
| + * @param {HTMLElement} sendCtrlAltDel
|
| + * @param {HTMLElement} sendPrtScrn
|
| + * @param {HTMLElement} resizeToClient
|
| + * @param {HTMLElement} shrinkToFit
|
| + * @param {HTMLElement?} fullscreen
|
| + * @constructor
|
| + */
|
| +remoting.OptionsMenu = function(sendCtrlAltDel, sendPrtScrn,
|
| + resizeToClient, shrinkToFit, fullscreen) {
|
| + this.sendCtrlAltDel_ = sendCtrlAltDel;
|
| + this.sendPrtScrn_ = sendPrtScrn;
|
| + this.resizeToClient_ = resizeToClient;
|
| + this.shrinkToFit_ = shrinkToFit;
|
| + this.fullscreen_ = fullscreen;
|
| + /**
|
| + * @type {remoting.ClientSession}
|
| + * @private
|
| + */
|
| + this.clientSession_ = null;
|
| +
|
| + this.sendCtrlAltDel_.addEventListener(
|
| + 'click', this.onSendCtrlAltDel_.bind(this), false);
|
| + this.sendPrtScrn_.addEventListener(
|
| + 'click', this.onSendPrtScrn_.bind(this), false);
|
| + this.resizeToClient_.addEventListener(
|
| + 'click', this.onResizeToClient_.bind(this), false);
|
| + this.shrinkToFit_.addEventListener(
|
| + 'click', this.onShrinkToFit_.bind(this), false);
|
| + if (this.fullscreen_) {
|
| + this.fullscreen_.addEventListener(
|
| + 'click', this.onFullscreen_.bind(this), false);
|
| + }
|
| +};
|
| +
|
| +/**
|
| + * @param {remoting.ClientSession} clientSession The active session, or null if
|
| + * there is no connection.
|
| + */
|
| +remoting.OptionsMenu.prototype.setClientSession = function(clientSession) {
|
| + this.clientSession_ = clientSession;
|
| +};
|
| +
|
| +remoting.OptionsMenu.prototype.onShow = function() {
|
| + if (this.clientSession_) {
|
| + remoting.MenuButton.select(
|
| + this.resizeToClient_, this.clientSession_.getResizeToClient());
|
| + remoting.MenuButton.select(
|
| + this.shrinkToFit_, this.clientSession_.getShrinkToFit());
|
| + if (this.fullscreen_) {
|
| + remoting.MenuButton.select(
|
| + this.fullscreen_, remoting.fullscreen.isActive());
|
| + }
|
| + }
|
| +};
|
| +
|
| +remoting.OptionsMenu.prototype.onSendCtrlAltDel_ = function() {
|
| + if (this.clientSession_) {
|
| + this.clientSession_.sendCtrlAltDel();
|
| + }
|
| +};
|
| +
|
| +remoting.OptionsMenu.prototype.onSendPrtScrn_ = function() {
|
| + if (this.clientSession_) {
|
| + this.clientSession_.sendPrintScreen();
|
| + }
|
| +};
|
| +
|
| +remoting.OptionsMenu.prototype.onResizeToClient_ = function() {
|
| + if (this.clientSession_) {
|
| + this.clientSession_.setScreenMode(this.clientSession_.getShrinkToFit(),
|
| + !this.clientSession_.getResizeToClient());
|
| + }
|
| +};
|
| +
|
| +remoting.OptionsMenu.prototype.onShrinkToFit_ = function() {
|
| + if (this.clientSession_) {
|
| + this.clientSession_.setScreenMode(!this.clientSession_.getShrinkToFit(),
|
| + this.clientSession_.getResizeToClient());
|
| + }
|
| +};
|
| +
|
| +remoting.OptionsMenu.prototype.onFullscreen_ = function() {
|
| + remoting.fullscreen.toggle();
|
| +};
|
|
|