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

Side by Side Diff: chrome/third_party/chromevox/extensions/searchvox/context_menu.js

Issue 274963004: Update latest ChromeVox from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2013 Google Inc. All Rights Reserved.
2
3 /**
4 * @fileoverview Context Menu for Search.
5 * @author peterxiao@google.com (Peter Xiao)
6 */
7
8 goog.provide('cvox.SearchContextMenu');
9
10 goog.require('cvox.ChromeVoxKbHandler');
11 goog.require('cvox.KeySequence');
12 goog.require('cvox.Search');
13 goog.require('cvox.SearchTool');
14
15 /**
16 * @constructor
17 */
18 cvox.SearchContextMenu = function() {
19 };
20
21 /* Globals */
22 var Command = {
23 TOOLS: 'tools',
24 ADS: 'ads',
25 MAIN: 'main'
26 };
27
28 /**
29 * Current focus Search is in.
30 */
31 cvox.SearchContextMenu.currState = Command.MAIN;
32
33 /**
34 * Handles context menu events.
35 * @param {Event} evt Event received.
36 */
37 cvox.SearchContextMenu.contextMenuHandler = function(evt) {
38 var cmd = evt.detail['customCommand'];
39 switch (cmd) {
40 case Command.TOOLS:
41 cvox.SearchContextMenu.focusTools();
42 break;
43
44 case Command.ADS:
45 cvox.SearchContextMenu.focusAds();
46 break;
47
48 case Command.MAIN:
49 cvox.SearchContextMenu.focusMain();
50 break;
51 }
52 };
53
54 /**
55 * Handles key events.
56 * @param {Event} evt Event received.
57 * @return {boolean} True if key was handled, false otherwise.
58 */
59 cvox.SearchContextMenu.keyhandler = function(evt) {
60 var ret = false;
61 var keySeq = new cvox.KeySequence(evt);
62 var command = cvox.ChromeVoxKbHandler.handlerKeyMap.commandForKey(keySeq);
63 /* Handle if just default action. */
64 if (!command || command === 'performDefaultAction') {
65 switch (cvox.SearchContextMenu.currState) {
66 case Command.TOOLS:
67 ret = cvox.SearchTool.keyhandler(evt);
68 break;
69 case Command.ADS:
70 case Command.MAIN:
71 ret = cvox.Search.keyhandler(evt);
72 break;
73 }
74 }
75 return ret;
76 };
77
78 /**
79 * Switch to main search results focus.
80 */
81 cvox.SearchContextMenu.focusMain = function() {
82 if (cvox.SearchContextMenu.currState === Command.TOOLS) {
83 cvox.SearchTool.toggleMenu();
84 }
85 cvox.Search.populateResults();
86 cvox.Search.index = 0;
87 cvox.Search.syncToIndex();
88 cvox.SearchContextMenu.currState = Command.MAIN;
89 };
90
91 /**
92 * Switch to ads focus.
93 */
94 cvox.SearchContextMenu.focusAds = function() {
95 cvox.Search.populateAdResults();
96 if (cvox.Search.results.length === 0) {
97 cvox.SearchContextMenu.focusMain();
98 return;
99 }
100 cvox.Search.index = 0;
101 cvox.Search.syncToIndex();
102
103 if (cvox.SearchContextMenu.currState === Command.TOOLS) {
104 cvox.SearchTool.toggleMenu();
105 }
106
107 cvox.SearchContextMenu.currState = Command.ADS;
108 };
109
110 /**
111 * Switch to tools focus.
112 */
113 cvox.SearchContextMenu.focusTools = function() {
114 if (cvox.SearchContextMenu.currState !== Command.TOOLS) {
115 cvox.SearchTool.activateTools();
116 cvox.SearchContextMenu.currState = Command.TOOLS;
117 }
118 };
119
120 /**
121 * Initializes the context menu.
122 */
123 cvox.SearchContextMenu.init = function() {
124 var ACTIONS = [
125 { desc: 'Main Results', cmd: Command.MAIN },
126 { desc: 'Search Tools', cmd: Command.TOOLS },
127 { desc: 'Ads', cmd: Command.ADS }
128 ];
129 /* Attach ContextMenuActions. */
130 var body = document.querySelector('body');
131 body.setAttribute('contextMenuActions', JSON.stringify(ACTIONS));
132
133 /* Listen for ContextMenu events. */
134 body.addEventListener('ATCustomEvent',
135 cvox.SearchContextMenu.contextMenuHandler, true);
136
137 window.addEventListener('keydown', cvox.SearchContextMenu.keyhandler, true);
138 cvox.Search.init();
139 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698