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

Unified Diff: third_party/google_input_tools/src/chrome/os/inputview/elements/content/menuview.js

Issue 1576613002: Update Google Input Tools. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missing APIs, remove bade dependencies. Created 4 years, 11 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
Index: third_party/google_input_tools/src/chrome/os/inputview/elements/content/menuview.js
diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/menuview.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/menuview.js
index 6cecdaae5d53bf4cef657573bf4e75ca902e42f3..3364504bc2cd777fd421187901ff2d26f7ec9694 100644
--- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/menuview.js
+++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/menuview.js
@@ -18,33 +18,58 @@ goog.require('goog.a11y.aria.State');
goog.require('goog.array');
goog.require('goog.dom.TagName');
goog.require('goog.dom.classlist');
+goog.require('goog.log');
goog.require('goog.style');
+goog.require('i18n.input.chrome.ElementType');
goog.require('i18n.input.chrome.inputview.Css');
goog.require('i18n.input.chrome.inputview.elements.Element');
-goog.require('i18n.input.chrome.inputview.elements.ElementType');
goog.require('i18n.input.chrome.inputview.elements.content.MenuItem');
goog.require('i18n.input.chrome.inputview.util');
goog.scope(function() {
-var ElementType = i18n.input.chrome.inputview.elements.ElementType;
+var ElementType = i18n.input.chrome.ElementType;
var MenuItem = i18n.input.chrome.inputview.elements.content.MenuItem;
var Css = i18n.input.chrome.inputview.Css;
/**
* The view for IME switcher, layout switcher and settings menu popup.
+ * TODO(bshe): Refactor MenuView to extend AltDataView.
*
* @param {goog.events.EventTarget=} opt_eventTarget The parent event target.
* @constructor
* @extends {i18n.input.chrome.inputview.elements.Element}
*/
-// TODO: Refactor MenuView to extend AltDataView.
i18n.input.chrome.inputview.elements.content.MenuView = function(
opt_eventTarget) {
goog.base(this, '', ElementType.MENU_VIEW, opt_eventTarget);
+ /**
+ * The cover element.
+ * Note: The reason we use a separate cover element instead of the view is
+ * because of the opacity. We can not reassign the opacity in child element.
+ *
+ * @private {!Element}
+ */
+ this.coverElement_ = this.getDomHelper().createDom(goog.dom.TagName.DIV,
+ Css.ALTDATA_COVER);
+
+ /**
+ * The key triggered this menu view.
+ *
+ * @private {i18n.input.chrome.inputview.elements.content.SoftKey}
+ */
+ this.triggeredBy_ = null;
+
+ /**
+ * Logger for MenuView.
+ * @private {goog.log.Logger}
+ */
+ this.logger_ = goog.log.getLogger(
+ 'i18n.input.chrome.inputview.elements.content.MenuView');
+
this.pointerConfig.stopEventPropagation = false;
this.pointerConfig.preventDefault = false;
};
@@ -63,9 +88,7 @@ MenuView.Command = {
SWITCH_KEYSET: 1,
OPEN_EMOJI: 2,
OPEN_HANDWRITING: 3,
- OPEN_SETTING: 4,
- FLOATING: 5,
- DOCKING: 6
+ OPEN_SETTING: 4
};
@@ -77,16 +100,16 @@ MenuView.Command = {
*
* @private {number}
*/
-MenuView.VISIBLE_ITEMS_ = 4;
+MenuView.MAX_VISIBLE_ITEMS_ = 4;
/**
- * Same as VISIBLE_ITEM_ but for a11y keyboard. A11y virtual keyboard is shorter
- * than normal keyboard so 3 is used.
+ * Same as MAX_VISIBLE_ITEM_ but for a11y keyboard. A11y virtual keyboard is
+ * shorter than normal keyboard so 3 is used.
*
* @private {number}
*/
-MenuView.VISIBLE_ITEMS_A11Y_ = 3;
+MenuView.MAX_VISIBLE_ITEMS_A11Y_ = 3;
/**
@@ -95,7 +118,7 @@ MenuView.VISIBLE_ITEMS_A11Y_ = 3;
*
* @private {number}
*/
-MenuView.WIDTH_ = 275;
+MenuView.WIDTH_PX_ = 275;
/**
@@ -103,7 +126,7 @@ MenuView.WIDTH_ = 275;
*
* @private {number}
*/
-MenuView.PADDING_LEFT_ = 25;
+MenuView.PADDING_LEFT_PX_ = 25;
/**
@@ -111,17 +134,7 @@ MenuView.PADDING_LEFT_ = 25;
*
* @private {number}
*/
-MenuView.LIST_ITEM_HEIGHT_ = 45;
-
-
-/**
- * The cover element.
- * Note: The reason we use a separate cover element instead of the view is
- * because of the opacity. We can not reassign the opacity in child element.
- *
- * @private {!Element}
- */
-MenuView.prototype.coverElement_;
+MenuView.LIST_ITEM_HEIGHT_PX_ = 45;
/** @override */
@@ -131,7 +144,6 @@ MenuView.prototype.createDom = function() {
var dom = this.getDomHelper();
var elem = this.getElement();
goog.dom.classlist.add(elem, Css.MENU_VIEW);
- this.coverElement_ = dom.createDom(goog.dom.TagName.DIV, Css.ALTDATA_COVER);
goog.a11y.aria.setState(this.coverElement_, goog.a11y.aria.State.LABEL,
chrome.i18n.getMessage('DISMISS_MENU'));
dom.appendChild(document.body, this.coverElement_);
@@ -141,51 +153,41 @@ MenuView.prototype.createDom = function() {
};
-/** @override */
-MenuView.prototype.enterDocument = function() {
- goog.base(this, 'enterDocument');
-
- goog.style.setElementShown(this.getElement(), false);
-};
-
-
/**
* Shows the menu view.
* @param {!i18n.input.chrome.inputview.elements.content.SoftKey} key The key
- * triggerred this menu view.
+ * triggered this menu view.
* @param {!string} currentKeysetId The keyset ID that this menu key belongs to.
* @param {boolean} isCompact True if the keyset that owns the menu key is a
* compact layout.
* @param {boolean} enableCompactLayout True if the keyset that owns the menu
* key enabled compact layout.
* @param {!string} currentInputMethod The current input method ID.
- * @param {?Array.<Object<string, string, string>>} inputMethods The list of
+ * @param {?Array.<!Object<string, string, string>>} inputMethods The list of
* activated input methods.
* @param {boolean} hasHwt Whether to add handwriting button.
* @param {boolean} enableSettings Whether to add a link to settings page.
* @param {boolean} hasEmoji Whether to enable emoji.
* @param {boolean} isA11y Whether the current keyboard is a11y-optimized.
- * @param {boolean} enableFVK Whether to enable floating virtual keyboard.
- * @param {boolean} isFloating Whether the virtual keyboard is floating.
*/
MenuView.prototype.show = function(key, currentKeysetId, isCompact,
enableCompactLayout, currentInputMethod, inputMethods, hasHwt,
- enableSettings, hasEmoji, isA11y, enableFVK, isFloating) {
- var ElementType = i18n.input.chrome.inputview.elements.ElementType;
+ enableSettings, hasEmoji, isA11y) {
+ var ElementType = i18n.input.chrome.ElementType;
var dom = this.getDomHelper();
if (key.type != ElementType.MENU_KEY) {
- console.error('Unexpected key triggered the menu view. Key type = ' +
- key.type + '.');
+ goog.log.warning(this.logger_,
+ 'Unexpected key triggered the menu view. Key type = ' + key.type + '.');
return;
}
- this.triggeredBy = key;
+ this.triggeredBy_ = key;
var coordinate = goog.style.getClientPosition(key.getElement());
var x = coordinate.x;
// y is the maximal height that menu view can have.
var y = coordinate.y;
goog.style.setElementShown(this.getElement(), true);
- // TODO: May not need to remove child.
+ // TODO(bshe): May not need to remove child.
dom.removeChildren(this.getElement());
var totalHeight = 0;
@@ -194,29 +196,26 @@ MenuView.prototype.show = function(key, currentKeysetId, isCompact,
totalHeight += this.addLayoutSwitcherItem_(key, currentKeysetId, isCompact,
enableCompactLayout);
if (hasHwt || enableSettings || hasEmoji) {
- totalHeight += this.addFooterItems_(hasHwt, enableSettings, hasEmoji,
- enableFVK, isFloating);
+ totalHeight += this.addFooterItems_(hasHwt, enableSettings, hasEmoji);
}
var left = x;
- // TODO: Take care of elemTop < 0. A scrollable view is probably needed.
+ // TODO(bshe): Take care of elemTop < 0. A scrollable view is probably needed.
var elemTop = y - totalHeight;
goog.style.setPosition(this.getElement(), left, elemTop);
goog.style.setElementShown(this.coverElement_, true);
- this.triggeredBy.setHighlighted(true);
+ this.triggeredBy_.setHighlighted(true);
};
-/**
- * Hides the menu view.
- */
+/** Hides the menu view. */
MenuView.prototype.hide = function() {
goog.style.setElementShown(this.getElement(), false);
goog.style.setElementShown(this.coverElement_, false);
- if (this.triggeredBy) {
- this.triggeredBy.setHighlighted(false);
+ if (this.triggeredBy_) {
+ this.triggeredBy_.setHighlighted(false);
}
};
@@ -225,7 +224,7 @@ MenuView.prototype.hide = function() {
* Adds the list of activated input methods.
*
* @param {!string} currentInputMethod The current input method ID.
- * @param {?Array.<Object<string, string, string>>} inputMethods The list of
+ * @param {?Array.<!Object<string, string, string>>} inputMethods The list of
* activated input methods.
* @param {boolean} isA11y Whether the current keyboard is a11y-optimized.
* @return {number} The height of the ime list container.
@@ -237,15 +236,16 @@ MenuView.prototype.addInputMethodItems_ = function(currentInputMethod,
var container = dom.createDom(goog.dom.TagName.DIV,
Css.IME_LIST_CONTAINER);
var visibleItems = isA11y ?
- MenuView.VISIBLE_ITEMS_A11Y_ : MenuView.VISIBLE_ITEMS_;
+ MenuView.MAX_VISIBLE_ITEMS_A11Y_ : MenuView.MAX_VISIBLE_ITEMS_;
for (var i = 0; i < inputMethods.length; i++) {
var inputMethod = inputMethods[i];
- var listItem = {};
- listItem['indicator'] = inputMethod['indicator'];
- listItem['name'] = inputMethod['name'];
- listItem['command'] =
- [MenuView.Command.SWITCH_IME, inputMethod['id']];
+ var listItem = {
+ 'indicator': inputMethod['indicator'],
+ 'name': inputMethod['name'],
+ 'command':
+ [MenuView.Command.SWITCH_IME, inputMethod['id']]
+ };
var ariaLabel = chrome.i18n.getMessage('SWITCH_TO_KEYBOARD_PREFIX') +
inputMethod['name'];
if (currentInputMethod == inputMethod['id']) {
@@ -259,14 +259,14 @@ MenuView.prototype.addInputMethodItems_ = function(currentInputMethod,
imeItem.check();
}
goog.style.setSize(imeItem.getElement(),
- (MenuView.WIDTH_ + MenuView.PADDING_LEFT_),
- MenuView.LIST_ITEM_HEIGHT_);
+ MenuView.WIDTH_PX_ + MenuView.PADDING_LEFT_PX_,
+ MenuView.LIST_ITEM_HEIGHT_PX_);
}
var containerHeight = inputMethods.length > visibleItems ?
- MenuView.LIST_ITEM_HEIGHT_ * visibleItems :
- MenuView.LIST_ITEM_HEIGHT_ * inputMethods.length;
- goog.style.setSize(container, MenuView.WIDTH_ + MenuView.PADDING_LEFT_,
+ MenuView.LIST_ITEM_HEIGHT_PX_ * visibleItems :
+ MenuView.LIST_ITEM_HEIGHT_PX_ * inputMethods.length;
+ goog.style.setSize(container, MenuView.WIDTH_PX_ + MenuView.PADDING_LEFT_PX_,
containerHeight);
dom.appendChild(this.getElement(), container);
@@ -322,10 +322,10 @@ MenuView.prototype.addLayoutSwitcherItem_ = function(key, currentKeysetId,
chrome.i18n.getMessage('SWITCH_TO_COMPACT_LAYOUT'));
}
layoutSwitcherItem.render(this.getElement());
- goog.style.setSize(layoutSwitcherItem.getElement(), MenuView.WIDTH_,
- MenuView.LIST_ITEM_HEIGHT_);
+ goog.style.setSize(layoutSwitcherItem.getElement(), MenuView.WIDTH_PX_,
+ MenuView.LIST_ITEM_HEIGHT_PX_);
- return MenuView.LIST_ITEM_HEIGHT_;
+ return MenuView.LIST_ITEM_HEIGHT_PX_;
};
@@ -336,19 +336,18 @@ MenuView.prototype.addLayoutSwitcherItem_ = function(key, currentKeysetId,
* @param {boolean} hasHwt Whether to add handwriting button.
* @param {boolean} enableSettings Whether to add settings button.
* @param {boolean} hasEmoji Whether to add emoji button.
- * @param {boolean} enableFVK Whether to add floating virtual keyboard button.
- * @param {boolean} isFloating Whether the virtual keyboard is floating.
* @return {number} The height of the footer.
* @private
*/
MenuView.prototype.addFooterItems_ = function(hasHwt, enableSettings,
- hasEmoji, enableFVK, isFloating) {
+ hasEmoji) {
var dom = this.getDomHelper();
var footer = dom.createDom(goog.dom.TagName.DIV, Css.MENU_FOOTER);
if (hasEmoji) {
- var emoji = {};
- emoji['iconCssClass'] = Css.MENU_FOOTER_EMOJI_BUTTON;
- emoji['command'] = [MenuView.Command.OPEN_EMOJI];
+ var emoji = {
+ 'iconCssClass': Css.MENU_FOOTER_EMOJI_BUTTON,
+ 'command': [MenuView.Command.OPEN_EMOJI]
+ };
var emojiFooter = new MenuItem('emoji', emoji,
MenuItem.Type.FOOTER_ITEM,
chrome.i18n.getMessage('FOOTER_EMOJI_BUTTON'));
@@ -356,9 +355,10 @@ MenuView.prototype.addFooterItems_ = function(hasHwt, enableSettings,
}
if (hasHwt) {
- var handWriting = {};
- handWriting['iconCssClass'] = Css.MENU_FOOTER_HANDWRITING_BUTTON;
- handWriting['command'] = [MenuView.Command.OPEN_HANDWRITING];
+ var handWriting = {
+ 'iconCssClass': Css.MENU_FOOTER_HANDWRITING_BUTTON,
+ 'command': [MenuView.Command.OPEN_HANDWRITING]
+ };
var handWritingFooter = new MenuItem('handwriting', handWriting,
MenuItem.Type.FOOTER_ITEM,
chrome.i18n.getMessage('FOOTER_HANDWRITING_BUTTON'));
@@ -366,58 +366,36 @@ MenuView.prototype.addFooterItems_ = function(hasHwt, enableSettings,
}
if (enableSettings) {
- var setting = {};
- setting['iconCssClass'] = Css.MENU_FOOTER_SETTING_BUTTON;
- setting['command'] = [MenuView.Command.OPEN_SETTING];
+ var setting = {
+ 'iconCssClass': Css.MENU_FOOTER_SETTING_BUTTON,
+ 'command': [MenuView.Command.OPEN_SETTING]
+ };
var settingFooter = new MenuItem('setting', setting,
MenuItem.Type.FOOTER_ITEM,
chrome.i18n.getMessage('FOOTER_SETTINGS_BUTTON'));
settingFooter.render(footer);
}
- if (enableFVK) {
- var floating = {};
- if (isFloating) {
- floating['iconCssClass'] = Css.MENU_FOOTER_DOCKING_BUTTON;
- floating['command'] = [MenuView.Command.DOCKING];
- var floatingFooter = new MenuItem('dock', floating,
- MenuItem.Type.FOOTER_ITEM,
- chrome.i18n.getMessage('FOOTER_DOCKING_BUTTON'));
- floatingFooter.render(footer);
- } else {
- floating['iconCssClass'] = Css.MENU_FOOTER_FLOATING_BUTTON;
- floating['command'] = [MenuView.Command.FLOATING];
- var floatingFooter = new MenuItem('floating', floating,
- MenuItem.Type.FOOTER_ITEM,
- chrome.i18n.getMessage('FOOTER_FLOATING_BUTTON'));
- floatingFooter.render(footer);
- }
- }
-
// Sets footer itmes' width.
var elems = dom.getChildren(footer);
var len = elems.length;
- var subWidth = Math.ceil((MenuView.WIDTH_ + MenuView.PADDING_LEFT_) / len);
- var i = 0;
- for (; i < len - 1; i++) {
+ var subWidth =
+ Math.ceil((MenuView.WIDTH_PX_ + MenuView.PADDING_LEFT_PX_) / len);
+ for (var i = 0; i < len - 1; i++) {
elems[i].style.width = subWidth + 'px';
}
- elems[i].style.width = (MenuView.WIDTH_ + MenuView.PADDING_LEFT_ -
+ elems[len - 1].style.width = (MenuView.WIDTH_PX_ + MenuView.PADDING_LEFT_PX_ -
subWidth * (len - 1)) + 'px';
dom.appendChild(this.getElement(), footer);
- goog.style.setSize(footer, (MenuView.WIDTH_ + MenuView.PADDING_LEFT_),
- MenuView.LIST_ITEM_HEIGHT_);
+ goog.style.setSize(footer, (MenuView.WIDTH_PX_ + MenuView.PADDING_LEFT_PX_),
+ MenuView.LIST_ITEM_HEIGHT_PX_);
- return MenuView.LIST_ITEM_HEIGHT_;
+ return MenuView.LIST_ITEM_HEIGHT_PX_;
};
-/**
- * Gets the cover element.
- *
- * @return {!Element} The cover element.
- */
+/** @return {!Element} The cover element. */
MenuView.prototype.getCoverElement = function() {
return this.coverElement_;
};
@@ -435,7 +413,7 @@ MenuView.prototype.resize = function(width, height) {
/** @override */
MenuView.prototype.disposeInternal = function() {
- this.getElement()['view'] = null;
+ this.coverElement_['view'] = null;
goog.base(this, 'disposeInternal');
};

Powered by Google App Engine
This is Rietveld 408576698