1731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Use of this source code is governed by a BSD-style license that can be
3731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// found in the LICENSE file.
4731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
5731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick/**
6731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick * ButtonCommand class for small buttons on menu items.
7731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick */
8731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvar ButtonCommand = cr.ui.define('div');
9731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
10731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickButtonCommand.prototype = {
11731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  __proto__: HTMLDivElement.prototype,
12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
13731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
14731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Decorate Button item.
15731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
16731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  decorate: function() {
17731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
18731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
19731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
20731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Changes the selection state of the menu item.
21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @param {boolean} selected True to set the selection, or false otherwise.
22731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
23731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  set selected(selected) {
24731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (selected) {
25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.classList.add('selected');
26731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.menu_.selectedItem = this;
27731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    } else {
28731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.classList.remove('selected');
29731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
30731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
31731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
32731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
33731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Activate the menu item.
34731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
35731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  activate: function() {
36731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    sendActivate(this.menu_.getMenuItemIndexOf(this),
37731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                 'close_and_activate');
38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick};
40731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
41731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick/**
42731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick * EditCommand implements Copy and Paste command.
43731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick */
44731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvar EditCommand = cr.ui.define('div');
45731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
46731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickEditCommand.prototype = {
47731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  __proto__: ButtonCommand.prototype,
48731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
49731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
50731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Initialize the menu item.
51731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @override
52731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
53731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  init: function(menu, attrs, model) {
54731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.menu_ = menu;
55731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.attrs = attrs;
56731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (this.attrs.font) {
57731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.style.font = attrs.font;
58731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
59731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    menu.addHandlers(this, this);
60731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (attrs.command_id == menu.config_.IDC_COPY) {
61731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      menu.addLabelTo(this, menu.config_.IDS_COPY, this,
62731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                      false /* no mnemonic */);
63731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    } else {
64731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      menu.addLabelTo(this, menu.config_.IDS_PASTE, this,
65731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                      false /* no mnemonic */);
66731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
67731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
68731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick};
69731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
70731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick/**
71731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick * EditMenuItem which has Copy and Paste commands inside.
72731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick */
73731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvar EditMenuItem = cr.ui.define('div');
74731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
75731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickEditMenuItem.prototype = {
76731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  __proto__: MenuItem.prototype,
77731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
78731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
79731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Initialize
80731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
81731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  decorate: function() {
82731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.className = 'menu-item';
83731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.label_ = document.createElement('div');
84731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.label_.className = 'menu-label';
85731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.cut_ = document.createElement('div');
86731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.cut_.className = 'edit-button left-button';
87731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.copy_ = new EditCommand();
88731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.copy_.className = 'edit-button center-button';
89731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.paste_ = new EditCommand();
90731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.paste_.className = 'edit-button right-button';
91731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
92731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.appendChild(this.label_);
93731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.appendChild(this.cut_);
94731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.appendChild(this.copy_);
95731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.appendChild(this.paste_);
96731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
97731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
98731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
99731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Activates the command.
100731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @override
101731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
102731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  activate: function() {
103731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    sendActivate(this.menu_.getMenuItemIndexOf(this),
104731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                 'close_and_activate');
105731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
106731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
107731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
108731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @override
109731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
110731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  set selected(selected) {
111731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (selected) {
112731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.cut_.classList.add('selected');
113731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.menu_.selectedItem = this;
114731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    } else {
115731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.cut_.classList.remove('selected');
116731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
117731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
118731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
119731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
120731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Initialize the edit items with configuration info.
121731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @override
122731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
123731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  initMenuItem_: function() {
124731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.label_.textContent =
125731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        this.menu_.config_.IDS_EDIT2;
126731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (this.attrs.font) {
127731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.label_.style.font = this.attrs.font;
128731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.cut_.style.font = this.attrs.font;
129731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
130731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.menu_.addLabelTo(
131731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        this, this.menu_.config_.IDS_CUT, this.cut_,
132731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        false /* no mnemonic */);
133731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.menu_.addHandlers(this, this.cut_);
134731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
135731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick};
136731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
137731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick/**
138731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick * ZoomCommand class implements Zoom plus and fullscreen.
139731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick */
140731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvar ZoomCommand = cr.ui.define('div');
141731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
142731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickZoomCommand.prototype = {
143731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  __proto__: ButtonCommand.prototype,
144731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
145731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
146731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Initialize the menu item.
147731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @override
148731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
149731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  init: function(menu, attrs, model) {
150731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.menu_ = menu;
151731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.attrs = attrs;
152731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    menu.addHandlers(this, this);
153731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (attrs.command_id == menu.config_.IDC_ZOOM_PLUS) {
154731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.textContent = '+';
155731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
156731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (this.attrs.font) {
157731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.style.font = attrs.font;
158731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
159731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
160731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
161731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
162731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Activate zoom plus and full screen commands.
163731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @override
164731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
165731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  activate: function() {
166731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    sendActivate(this.menu_.getMenuItemIndexOf(this),
167731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                 this.attrs.command_id == this.menu_.config_.IDC_ZOOM_PLUS ?
168731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                 'activate_no_close' : 'close_and_activate');
169731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
170731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick};
171731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
172731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick/**
173731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick * ZoomMenuItem which has plus and fullscreen buttons inside.
174731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick */
175731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvar ZoomMenuItem = cr.ui.define('div');
176731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
177731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickZoomMenuItem.prototype = {
178731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  __proto__: MenuItem.prototype,
179731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
180731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
181731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Decorate Zoom button item.
182731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
183731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  decorate: function() {
184731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.className = 'menu-item';
185731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
186731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.label_ = document.createElement('div');
187731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.label_.className = 'menu-label';
188731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.minus_ = document.createElement('div');
189731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.minus_.className = 'zoom-button left-button';
190731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.minus_.textContent = '-';
191731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.plus_ = new ZoomCommand();
192731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.plus_.className = 'zoom-button right-button';
193731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.percent_ = document.createElement('div');
194731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.percent_.className = 'zoom-percent center-button';
195731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.fullscreen_ = new ZoomCommand();
196731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.fullscreen_.className = 'fullscreen';
197731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
198731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.appendChild(this.label_);
199731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.appendChild(this.minus_);
200731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.appendChild(this.percent_);
201731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.appendChild(this.plus_);
202731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.appendChild(this.fullscreen_);
203731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
204731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
205731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
206731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Activates the cut command.
207731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @override
208731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
209731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  activate: function() {
210731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    sendActivate(this.menu_.getMenuItemIndexOf(this),
211731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                 'activate_no_close');
212731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
213731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
214731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
215731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Updates zoom controls.
216731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @params {JSON} params JSON object to configure zoom controls.
217731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
218731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  updateZoomControls: function(params) {
219731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.attrs.enabled = params.plus;
220731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (params.plus) {
221731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.plus_.classList.remove('disabled');
222731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    } else {
223731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.plus_.classList.add('disabled');
224731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
225731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.attrs.enabled = params.minus;
226731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (params.minus) {
227731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.classList.remove('disabled');
228731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    } else {
229731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.classList.add('disabled');
230731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
231731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.percent_.textContent = params.percent;
232731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
233731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
234731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
235731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @override
236731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
237731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  set selected(selected) {
238731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (selected) {
239731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.minus_.classList.add('selected');
240731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.menu_.selectedItem = this;
241731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    } else {
242731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.minus_.classList.remove('selected');
243731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
244731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
245731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
246731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
247731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Initializes the zoom menu item with configuration info.
248731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @override
249731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
250731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  initMenuItem_: function() {
251731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.label_.textContent =
252731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        this.menu_.config_.IDS_ZOOM_MENU2;
253731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.menu_.addHandlers(this, this.minus_);
254731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
255731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    if (this.attrs.font) {
256731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.label_.style.font = this.attrs.font;
257731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.minus_.style.font = this.attrs.font;
258731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      this.percent_.style.font = this.attrs.font;
259731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
260731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
261731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick};
262731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
263731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick/**
264731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick * WrenchMenu
265731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick */
266731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvar WrenchMenu = cr.ui.define('div');
267731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
268731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickWrenchMenu.prototype = {
269731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  __proto__: Menu.prototype,
270731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
271731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
272731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Decorate Zoom button item.
273731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
274731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  decorate: function() {
275731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    Menu.prototype.decorate.call(this);
276731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.edit_ = new EditMenuItem();
277731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.zoom_ = new ZoomMenuItem();
278731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
279731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
280731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  /**
281731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * Create a MenuItem for given {@code attrs}.
282731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   * @override
283731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick   */
284731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  createMenuItem: function(attrs) {
285731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    switch(attrs.command_id) {
286731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      case this.config_.IDC_CUT:
287731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        return this.edit_;
288731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      case this.config_.IDC_COPY:
289731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        return this.edit_.copy_;
290731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      case this.config_.IDC_PASTE:
291731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        return this.edit_.paste_;
292731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      case this.config_.IDC_ZOOM_MINUS:
293731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        return this.zoom_;
294731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      case this.config_.IDC_ZOOM_PLUS:
295731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        return this.zoom_.plus_;
296731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      case this.config_.IDC_FULLSCREEN:
297731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        return this.zoom_.fullscreen_;
298731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      default:
299731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick        return new MenuItem();
300731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    }
301731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
302731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
303731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  updateZoomControls: function(params) {
304731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    this.zoom_.updateZoomControls(params);
305731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  },
306731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick};
307731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
308731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickfunction updateZoomControls(params) {
309731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  var menu = document.getElementById('viewport');
310731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  menu.updateZoomControls(params);
311731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}
312