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

Side by Side Diff: chrome/browser/resources/wrench_menu.js

Issue 8687012: Moved ChromeOS-specific resources from chrome/browser/resources to chrome/browser/resources/chrom... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/resources/wrench_menu.css ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /**
6 * ButtonCommand class for small buttons on menu items.
7 */
8 var ButtonCommand = cr.ui.define('div');
9
10 ButtonCommand.prototype = {
11 __proto__: HTMLDivElement.prototype,
12
13 /**
14 * Decorate Button item.
15 */
16 decorate: function() {
17 },
18
19 /**
20 * Changes the selection state of the menu item.
21 * @param {boolean} selected True to set the selection, or false otherwise.
22 */
23 set selected(selected) {
24 if (selected) {
25 this.classList.add('selected');
26 this.menu_.selectedItem = this;
27 } else {
28 this.classList.remove('selected');
29 }
30 },
31
32 /**
33 * Activate the menu item.
34 */
35 activate: function() {
36 sendActivate(this.menu_.getMenuItemIndexOf(this),
37 'close_and_activate');
38 },
39 };
40
41 /**
42 * EditCommand implements Copy and Paste command.
43 */
44 var EditCommand = cr.ui.define('div');
45
46 EditCommand.prototype = {
47 __proto__: ButtonCommand.prototype,
48
49 /**
50 * Initialize the menu item.
51 * @override
52 */
53 init: function(menu, attrs, model) {
54 this.menu_ = menu;
55 this.attrs = attrs;
56 if (this.attrs.font) {
57 this.style.font = attrs.font;
58 }
59 menu.addHandlers(this, this);
60 if (attrs.command_id == menu.config_.IDC_COPY) {
61 menu.addLabelTo(this, menu.config_.IDS_COPY, this,
62 false /* no mnemonic */);
63 } else {
64 menu.addLabelTo(this, menu.config_.IDS_PASTE, this,
65 false /* no mnemonic */);
66 }
67 },
68 };
69
70 /**
71 * EditMenuItem which has Copy and Paste commands inside.
72 */
73 var EditMenuItem = cr.ui.define('div');
74
75 EditMenuItem.prototype = {
76 __proto__: MenuItem.prototype,
77
78 /**
79 * Initialize
80 */
81 decorate: function() {
82 this.className = 'menu-item';
83 this.label_ = document.createElement('div');
84 this.label_.className = 'menu-label';
85 this.cut_ = document.createElement('div');
86 this.cut_.className = 'edit-button left-button';
87 this.copy_ = new EditCommand();
88 this.copy_.className = 'edit-button center-button';
89 this.paste_ = new EditCommand();
90 this.paste_.className = 'edit-button right-button';
91
92 this.appendChild(this.label_);
93 this.appendChild(this.cut_);
94 this.appendChild(this.copy_);
95 this.appendChild(this.paste_);
96 },
97
98 /**
99 * Activates the command.
100 * @override
101 */
102 activate: function() {
103 sendActivate(this.menu_.getMenuItemIndexOf(this),
104 'close_and_activate');
105 },
106
107 /**
108 * @override
109 */
110 set selected(selected) {
111 if (selected) {
112 this.cut_.classList.add('selected');
113 this.menu_.selectedItem = this;
114 } else {
115 this.cut_.classList.remove('selected');
116 }
117 },
118
119 /**
120 * Initialize the edit items with configuration info.
121 * @override
122 */
123 initMenuItem_: function() {
124 this.label_.textContent =
125 this.menu_.config_.IDS_EDIT2;
126 if (this.attrs.font) {
127 this.label_.style.font = this.attrs.font;
128 this.cut_.style.font = this.attrs.font;
129 }
130 this.menu_.addLabelTo(
131 this, this.menu_.config_.IDS_CUT, this.cut_,
132 false /* no mnemonic */);
133 this.menu_.addHandlers(this, this.cut_);
134 },
135 };
136
137 /**
138 * ZoomCommand class implements Zoom plus and fullscreen.
139 */
140 var ZoomCommand = cr.ui.define('div');
141
142 ZoomCommand.prototype = {
143 __proto__: ButtonCommand.prototype,
144
145 /**
146 * Initialize the menu item.
147 * @override
148 */
149 init: function(menu, attrs, model) {
150 this.menu_ = menu;
151 this.attrs = attrs;
152 menu.addHandlers(this, this);
153 if (attrs.command_id == menu.config_.IDC_ZOOM_PLUS) {
154 this.textContent = '+';
155 }
156 if (this.attrs.font) {
157 this.style.font = attrs.font;
158 }
159 },
160
161 /**
162 * Activate zoom plus and full screen commands.
163 * @override
164 */
165 activate: function() {
166 sendActivate(this.menu_.getMenuItemIndexOf(this),
167 this.attrs.command_id == this.menu_.config_.IDC_ZOOM_PLUS ?
168 'activate_no_close' : 'close_and_activate');
169 },
170 };
171
172 /**
173 * ZoomMenuItem which has plus and fullscreen buttons inside.
174 */
175 var ZoomMenuItem = cr.ui.define('div');
176
177 ZoomMenuItem.prototype = {
178 __proto__: MenuItem.prototype,
179
180 /**
181 * Decorate Zoom button item.
182 */
183 decorate: function() {
184 this.className = 'menu-item';
185
186 this.label_ = document.createElement('div');
187 this.label_.className = 'menu-label';
188 this.minus_ = document.createElement('div');
189 this.minus_.className = 'zoom-button left-button';
190 this.minus_.textContent = '-';
191 this.plus_ = new ZoomCommand();
192 this.plus_.className = 'zoom-button right-button';
193 this.percent_ = document.createElement('div');
194 this.percent_.className = 'zoom-percent center-button';
195 this.fullscreen_ = new ZoomCommand();
196 this.fullscreen_.className = 'fullscreen';
197
198 this.appendChild(this.label_);
199 this.appendChild(this.minus_);
200 this.appendChild(this.percent_);
201 this.appendChild(this.plus_);
202 this.appendChild(this.fullscreen_);
203 },
204
205 /**
206 * Activates the cut command.
207 * @override
208 */
209 activate: function() {
210 sendActivate(this.menu_.getMenuItemIndexOf(this),
211 'activate_no_close');
212 },
213
214 /**
215 * Updates zoom controls.
216 * @params {JSON} params JSON object to configure zoom controls.
217 */
218 updateZoomControls: function(params) {
219 this.attrs.enabled = params.plus;
220 if (params.plus) {
221 this.plus_.classList.remove('disabled');
222 } else {
223 this.plus_.classList.add('disabled');
224 }
225 this.attrs.enabled = params.minus;
226 if (params.minus) {
227 this.classList.remove('disabled');
228 } else {
229 this.classList.add('disabled');
230 }
231 this.percent_.textContent = params.percent;
232 },
233
234 /**
235 * @override
236 */
237 set selected(selected) {
238 if (selected) {
239 this.minus_.classList.add('selected');
240 this.menu_.selectedItem = this;
241 } else {
242 this.minus_.classList.remove('selected');
243 }
244 },
245
246 /**
247 * Initializes the zoom menu item with configuration info.
248 * @override
249 */
250 initMenuItem_: function() {
251 this.label_.textContent =
252 this.menu_.config_.IDS_ZOOM_MENU2;
253 this.menu_.addHandlers(this, this.minus_);
254
255 if (this.attrs.font) {
256 this.label_.style.font = this.attrs.font;
257 this.minus_.style.font = this.attrs.font;
258 this.percent_.style.font = this.attrs.font;
259 }
260 },
261 };
262
263 /**
264 * WrenchMenu
265 */
266 var WrenchMenu = cr.ui.define('div');
267
268 WrenchMenu.prototype = {
269 __proto__: Menu.prototype,
270
271 /**
272 * Decorate Zoom button item.
273 */
274 decorate: function() {
275 Menu.prototype.decorate.call(this);
276 this.edit_ = new EditMenuItem();
277 this.zoom_ = new ZoomMenuItem();
278 },
279
280 /**
281 * Create a MenuItem for given {@code attrs}.
282 * @override
283 */
284 createMenuItem: function(attrs) {
285 switch(attrs.command_id) {
286 case this.config_.IDC_CUT:
287 return this.edit_;
288 case this.config_.IDC_COPY:
289 return this.edit_.copy_;
290 case this.config_.IDC_PASTE:
291 return this.edit_.paste_;
292 case this.config_.IDC_ZOOM_MINUS:
293 return this.zoom_;
294 case this.config_.IDC_ZOOM_PLUS:
295 return this.zoom_.plus_;
296 case this.config_.IDC_FULLSCREEN:
297 return this.zoom_.fullscreen_;
298 default:
299 return new MenuItem();
300 }
301 },
302
303 updateZoomControls: function(params) {
304 this.zoom_.updateZoomControls(params);
305 },
306 };
307
308 function updateZoomControls(params) {
309 var menu = document.getElementById('viewport');
310 menu.updateZoomControls(params);
311 }
OLDNEW
« no previous file with comments | « chrome/browser/resources/wrench_menu.css ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698