PageRenderTime 29ms CodeModel.GetById 20ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 0ms

/toolkit/mozapps/extensions/content/extensions.xul

http://github.com/zpao/v8monkey
Unknown | 665 lines | 643 code | 22 blank | 0 comment | 0 complexity | 140bf32d565ee7b5e161adae0870c5d2 MD5 | raw file
  1<?xml version="1.0"?>
  2<!-- ***** BEGIN LICENSE BLOCK *****
  3   - Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4   -
  5   - The contents of this file are subject to the Mozilla Public License Version
  6   - 1.1 (the "License"); you may not use this file except in compliance with
  7   - the License. You may obtain a copy of the License at
  8   - http://www.mozilla.org/MPL/
  9   -
 10   - Software distributed under the License is distributed on an "AS IS" basis,
 11   - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 12   - for the specific language governing rights and limitations under the
 13   - License.
 14   -
 15   - The Original Code is the Extension Manager UI.
 16   -
 17   - The Initial Developer of the Original Code is
 18   - the Mozilla Foundation.
 19   - Portions created by the Initial Developer are Copyright (C) 2010
 20   - the Initial Developer. All Rights Reserved.
 21   -
 22   - Contributor(s):
 23   -   Blair McBride <bmcbride@mozilla.com>
 24   -   David Dahl <ddahl@mozilla.com>
 25   -
 26   - Alternatively, the contents of this file may be used under the terms of
 27   - either the GNU General Public License Version 2 or later (the "GPL"), or
 28   - the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 29   - in which case the provisions of the GPL or the LGPL are applicable instead
 30   - of those above. If you wish to allow use of your version of this file only
 31   - under the terms of either the GPL or the LGPL, and not to allow others to
 32   - use your version of this file under the terms of the MPL, indicate your
 33   - decision by deleting the provisions above and replace them with the notice
 34   - and other provisions required by the LGPL or the GPL. If you do not delete
 35   - the provisions above, a recipient may use your version of this file under
 36   - the terms of any one of the MPL, the GPL or the LGPL.
 37   -
 38   - ***** END LICENSE BLOCK ***** -->
 39
 40<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
 41<?xml-stylesheet href="chrome://mozapps/content/extensions/extensions.css"?>
 42<?xml-stylesheet href="chrome://mozapps/skin/extensions/extensions.css"?>
 43
 44<!DOCTYPE page [
 45<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
 46%brandDTD;
 47<!ENTITY % extensionsDTD SYSTEM "chrome://mozapps/locale/extensions/extensions.dtd">
 48%extensionsDTD;
 49]>
 50
 51<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
 52      xmlns:xhtml="http://www.w3.org/1999/xhtml"
 53      id="addons-page" title="&addons.windowTitle;"
 54      role="application" windowtype="Addons:Manager"
 55      disablefastfind="true"
 56      ondragenter="gDragDrop.onDragOver(event)"
 57      ondragover="gDragDrop.onDragOver(event)"
 58      ondrop="gDragDrop.onDrop(event)"
 59      onkeypress="gHeader.onKeyPress(event)">
 60
 61  <xhtml:link rel="shortcut icon"
 62              href="chrome://mozapps/skin/extensions/extensionGeneric-16.png"/>
 63
 64  <script type="application/javascript"
 65          src="chrome://mozapps/content/extensions/extensions.js"/>
 66  <script type="application/javascript"
 67          src="chrome://global/content/contentAreaUtils.js"/>
 68
 69  <popupset>
 70    <!-- menu for an addon item -->
 71    <menupopup id="addonitem-popup">
 72      <menuitem id="menuitem_showDetails" command="cmd_showItemDetails"
 73                default="true" label="&cmd.showDetails.label;"
 74                accesskey="&cmd.showDetails.accesskey;"/>
 75      <menuitem id="menuitem_enableItem" command="cmd_enableItem"
 76                label="&cmd.enableAddon.label;"
 77                accesskey="&cmd.enableAddon.accesskey;"/>
 78      <menuitem id="menuitem_disableItem" command="cmd_disableItem"
 79                label="&cmd.disableAddon.label;"
 80                accesskey="&cmd.disableAddon.accesskey;"/>
 81      <menuitem id="menuitem_enableTheme" command="cmd_enableItem"
 82                label="&cmd.enableTheme.label;"
 83                accesskey="&cmd.enableTheme.accesskey;"/>
 84      <menuitem id="menuitem_disableTheme" command="cmd_disableItem"
 85                label="&cmd.disableTheme.label;"
 86                accesskey="&cmd.disableTheme.accesskey;"/>
 87      <menuitem id="menuitem_installItem" command="cmd_installItem"
 88                label="&cmd.installAddon.label;"
 89                accesskey="&cmd.installAddon.accesskey;"/>
 90      <menuitem id="menuitem_uninstallItem" command="cmd_uninstallItem"
 91                label="&cmd.uninstallAddon.label;"
 92                accesskey="&cmd.uninstallAddon.accesskey;"/>
 93      <menuseparator id="addonitem-menuseparator" />
 94      <menuitem id="menuitem_preferences" command="cmd_showItemPreferences"
 95#ifdef XP_WIN
 96                label="&cmd.preferencesWin.label;"
 97                accesskey="&cmd.preferencesWin.accesskey;"/>
 98#else
 99                label="&cmd.preferencesUnix.label;"
100                accesskey="&cmd.preferencesUnix.accesskey;"/>
101#endif
102      <menuitem id="menuitem_findUpdates" command="cmd_findItemUpdates"
103                label="&cmd.findUpdates.label;"
104                accesskey="&cmd.findUpdates.accesskey;"/>
105      <menuitem id="menuitem_about" command="cmd_showItemAbout"
106                label="&cmd.about.label;"
107                accesskey="&cmd.about.accesskey;"/>
108    </menupopup>
109  </popupset>
110
111  <!-- global commands - these act on all addons, or affect the addons manager
112       in some other way -->
113  <commandset id="globalCommandSet"
114              oncommand="gViewController.doCommand(event.target.id);">
115    <command id="cmd_findAllUpdates"/>
116    <command id="cmd_restartApp"/>
117    <command id="cmd_goToDiscoverPane"/>
118    <command id="cmd_goToRecentUpdates"/>
119    <command id="cmd_goToAvailableUpdates"/>
120    <command id="cmd_installFromFile"/>
121    <command id="cmd_back"/>
122    <command id="cmd_forward"/>
123    <command id="cmd_enableCheckCompatibility"/>
124    <command id="cmd_pluginCheck"/>
125    <command id="cmd_enableUpdateSecurity"/>
126    <command id="cmd_toggleAutoUpdateDefault"/>
127    <command id="cmd_resetAddonAutoUpdate"/>
128  </commandset>
129
130  <!-- view commands - these act on the selected addon -->
131  <commandset id="viewCommandSet"
132              events="richlistbox-select" commandupdater="true"
133              oncommandupdate="gViewController.updateCommands();"
134              oncommand="gViewController.doCommand(event.target.id);">
135    <command id="cmd_showItemDetails"/>
136    <command id="cmd_findItemUpdates"/>
137    <command id="cmd_showItemPreferences"/>
138    <command id="cmd_showItemAbout"/>
139    <command id="cmd_enableItem"/>
140    <command id="cmd_disableItem"/>
141    <command id="cmd_installItem"/>
142    <command id="cmd_purchaseItem"/>
143    <command id="cmd_uninstallItem"/>
144    <command id="cmd_cancelUninstallItem"/>
145    <command id="cmd_cancelOperation"/>
146    <command id="cmd_contribute"/>
147  </commandset>
148
149  <keyset>
150    <key id="focusSearch" key="&search.commandkey;" modifiers="accel"
151         oncommand="gHeader.focusSearchBox();"/>
152  </keyset>
153
154  <!-- main header -->
155  <hbox id="header" align="center">
156    <toolbarbutton id="back-btn" class="nav-button header-button" command="cmd_back"
157            tooltiptext="&cmd.back.tooltip;" hidden="true" disabled="true"/>
158    <toolbarbutton id="forward-btn" class="nav-button header-button" command="cmd_forward"
159            tooltiptext="&cmd.forward.tooltip;" hidden="true" disabled="true"/>
160    <spacer flex="1"/>
161    <hbox id="updates-container" align="center">
162      <image class="spinner"/>
163      <label id="updates-noneFound" hidden="true"
164             value="&updates.noneFound.label;"/>
165      <button id="updates-manualUpdatesFound-btn" class="button-link"
166              hidden="true" label="&updates.manualUpdatesFound.label;"
167              command="cmd_goToAvailableUpdates"/>
168      <label id="updates-progress" hidden="true"
169             value="&updates.updating.label;"/>
170      <label id="updates-installed" hidden="true"
171             value="&updates.installed.label;"/>
172      <label id="updates-downloaded" hidden="true"
173             value="&updates.downloaded.label;"/>
174      <button id="updates-restart-btn" class="button-link" hidden="true"
175              label="&updates.restart.label;"
176              command="cmd_restartApp"/>
177    </hbox>
178    <toolbarbutton id="header-utils-btn" class="header-button" type="menu"
179            tooltiptext="&toolsMenu.tooltip;">
180      <menupopup id="utils-menu">
181        <menuitem id="utils-updateNow"
182                  label="&updates.checkForUpdates.label;"
183                  accesskey="&updates.checkForUpdates.accesskey;"
184                  command="cmd_findAllUpdates"/>
185        <menuitem id="utils-viewUpdates"
186                  label="&updates.viewUpdates.label;"
187                  accesskey="&updates.viewUpdates.accesskey;"
188                  command="cmd_goToRecentUpdates"/>
189        <menuseparator id="utils-installFromFile-separator"/>
190        <menuitem id="utils-installFromFile"
191                  label="&installAddonFromFile.label;"
192                  accesskey="&installAddonFromFile.accesskey;"
193                  command="cmd_installFromFile"/>
194        <menuseparator/>
195        <menuitem id="utils-autoUpdateDefault"
196                  label="&updates.updateAddonsAutomatically.label;"
197                  accesskey="&updates.updateAddonsAutomatically.accesskey;"
198                  type="checkbox" autocheck="false"
199                  command="cmd_toggleAutoUpdateDefault"/>
200        <menuitem id="utils-resetAddonUpdatesToAutomatic"
201                  label="&updates.resetUpdatesToAutomatic.label;"
202                  accesskey="&updates.resetUpdatesToAutomatic.accesskey;"
203                  command="cmd_resetAddonAutoUpdate"/>
204        <menuitem id="utils-resetAddonUpdatesToManual"
205                  label="&updates.resetUpdatesToManual.label;"
206                  accesskey="&updates.resetUpdatesToManual.accesskey;"
207                  command="cmd_resetAddonAutoUpdate"/>
208      </menupopup>
209    </toolbarbutton>
210    <textbox id="header-search" type="search" searchbutton="true"
211             placeholder="&search.placeholder;"/>
212  </hbox>
213
214  <hbox flex="1">
215
216    <!-- category list -->
217    <richlistbox id="categories">
218      <richlistitem id="category-search" value="addons://search/"
219                    class="category"
220                    name="&view.search.label;" priority="0"
221                    tooltiptext="&view.search.label;" disabled="true"/>
222      <richlistitem id="category-discover" value="addons://discover/"
223                    class="category"
224                    name="&view.discover.label;" priority="1000"
225                    tooltiptext="&view.discover.label;"/>
226      <richlistitem id="category-availableUpdates" value="addons://updates/available"
227                    class="category"
228                    name="&view.availableUpdates.label;" priority="100000"
229                    tooltiptext="&view.availableUpdates.label;"
230                    disabled="true"/>
231      <richlistitem id="category-recentUpdates" value="addons://updates/recent"
232                    class="category"
233                    name="&view.recentUpdates.label;" priority="101000"
234                    tooltiptext="&view.recentUpdates.label;" disabled="true"/>
235    </richlistbox>
236
237    <box id="view-port-container" class="main-content" flex="1">
238
239      <!-- view port -->
240      <deck id="view-port" flex="1" selectedIndex="0">
241
242        <!-- discover view -->
243        <deck id="discover-view" flex="1" class="view-pane" selectedIndex="0">
244          <vbox id="discover-loading" align="center" pack="stretch" flex="1" class="alert-container">
245            <spacer class="alert-spacer-before"/>
246            <hbox class="alert loading" align="center">
247              <image/>
248              <label value="&loading.label;"/>
249            </hbox>
250            <spacer class="alert-spacer-after"/>
251          </vbox>
252          <vbox id="discover-error" align="center" pack="stretch" flex="1" class="alert-container">
253            <spacer class="alert-spacer-before"/>
254            <hbox>
255              <spacer class="discover-spacer-before"/>
256              <hbox class="alert" align="center">
257                <image class="discover-logo"/>
258                <vbox flex="1" align="stretch">
259                  <label class="discover-title">&discover.title;</label>
260                  <description class="discover-description">&discover.description2;</description>
261                  <description class="discover-footer">&discover.footer;</description>
262                </vbox>
263              </hbox>
264              <spacer class="discover-spacer-after"/>
265            </hbox>
266            <spacer class="alert-spacer-after"/>
267          </vbox>
268          <browser id="discover-browser" type="content" flex="1"
269                   disablehistory="true" homepage="about:blank"/>
270        </deck>
271
272        <!-- search view -->
273        <vbox id="search-view" flex="1" class="view-pane">
274          <hbox class="view-header global-warning-container" align="center">
275            <!-- global warnings -->
276            <hbox class="global-warning" flex="1">
277              <hbox class="global-warning-safemode" flex="1" align="center"
278                    tooltiptext="&warning.safemode.label;">
279                <image class="warning-icon"/>
280                <label class="global-warning-text" flex="1" crop="end"
281                       value="&warning.safemode.label;"/>
282              </hbox>
283              <hbox class="global-warning-checkcompatibility" flex="1" align="center"
284                    tooltiptext="&warning.checkcompatibility.label;">
285                <image class="warning-icon"/>
286                <label class="global-warning-text" flex="1" crop="end"
287                       value="&warning.checkcompatibility.label;"/>
288              </hbox>
289              <button class="button-link global-warning-checkcompatibility"
290                      label="&warning.checkcompatibility.enable.label;"
291                      tooltiptext="&warning.checkcompatibility.enable.tooltip;"
292                      command="cmd_enableCheckCompatibility"/>
293              <hbox class="global-warning-updatesecurity" flex="1" align="center"
294                    tooltiptext="&warning.updatesecurity.label;">
295                <image class="warning-icon"/>
296                <label class="global-warning-text" flex="1" crop="end"
297                       value="&warning.updatesecurity.label;"/>
298              </hbox>
299              <button class="button-link global-warning-updatesecurity"
300                      label="&warning.updatesecurity.enable.label;"
301                      tooltiptext="&warning.updatesecurity.enable.tooltip;"
302                      command="cmd_enableUpdateSecurity"/>
303              <spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
304            </hbox>
305            <spacer flex="1"/>
306            <hbox id="search-sorters" class="sort-controls"
307                  showrelevance="true" sortby="relevancescore" ascending="false"/>
308          </hbox>
309          <hbox id="search-filter" align="center">
310            <label id="search-filter-label" value="&search.filter2.label;"/>
311            <radiogroup id="search-filter-radiogroup" orient="horizontal"
312                        align="center" persist="value" value="remote">
313              <radio id="search-filter-local" class="search-filter-radio"
314                     label="&search.filter2.installed.label;" value="local"
315                     tooltiptext="&search.filter2.installed.tooltip;"/>
316              <radio id="search-filter-remote" class="search-filter-radio"
317                     label="&search.filter2.available.label;" value="remote"
318                     tooltiptext="&search.filter2.available.tooltip;"/>
319            </radiogroup>
320          </hbox>
321          <vbox id="search-loading" class="alert-container"
322                flex="1" hidden="true">
323            <spacer class="alert-spacer-before"/>
324            <hbox class="alert loading" align="center">
325              <image/>
326              <label value="&loading.label;"/>
327            </hbox>
328            <spacer class="alert-spacer-after"/>
329          </vbox>
330          <vbox id="search-list-empty" class="alert-container"
331                flex="1" hidden="true">
332            <spacer class="alert-spacer-before"/>
333            <vbox class="alert">
334              <label value="&listEmpty.search.label;"/>
335              <button label="&listEmpty.button.label;"
336                      command="cmd_goToDiscoverPane"/>
337            </vbox>
338            <spacer class="alert-spacer-after"/>
339          </vbox>
340          <richlistbox id="search-list" class="list" flex="1">
341            <hbox pack="center">
342              <label id="search-allresults-link" class="text-link"/>
343            </hbox>
344          </richlistbox>
345        </vbox>
346
347        <!-- list view -->
348        <vbox id="list-view" flex="1" class="view-pane" align="stretch">
349          <hbox class="view-header global-warning-container">
350            <!-- global warnings -->
351            <hbox class="global-warning" flex="1">
352              <hbox class="global-warning-safemode" flex="1" align="center"
353                    tooltiptext="&warning.safemode.label;">
354                <image class="warning-icon"/>
355                <label class="global-warning-text" flex="1" crop="end"
356                       value="&warning.safemode.label;"/>
357              </hbox>
358              <hbox class="global-warning-checkcompatibility" flex="1" align="center"
359                    tooltiptext="&warning.checkcompatibility.label;">
360                <image class="warning-icon"/>
361                <label class="global-warning-text" flex="1" crop="end"
362                       value="&warning.checkcompatibility.label;"/>
363              </hbox>
364              <button class="button-link global-warning-checkcompatibility"
365                      label="&warning.checkcompatibility.enable.label;"
366                      tooltiptext="&warning.checkcompatibility.enable.tooltip;"
367                      command="cmd_enableCheckCompatibility"/>
368              <hbox class="global-warning-updatesecurity" flex="1" align="center"
369                    tooltiptext="&warning.updatesecurity.label;">
370                <image class="warning-icon"/>
371                <label class="global-warning-text" flex="1" crop="end"
372                       value="&warning.updatesecurity.label;"/>
373              </hbox>
374              <button class="button-link global-warning-updatesecurity"
375                      label="&warning.updatesecurity.enable.label;"
376                      tooltiptext="&warning.updatesecurity.enable.tooltip;"
377                      command="cmd_enableUpdateSecurity"/>
378              <spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
379            </hbox>
380          </hbox>
381          <hbox class="view-header global-info-container">
382            <hbox class="global-info" flex="1" align="center">
383              <button class="button-link global-info-plugincheck"
384                      label="&info.plugincheck.label;"
385                      tooltiptext="&info.plugincheck.tooltip;"
386                      command="cmd_pluginCheck"/>
387              <spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
388            </hbox>
389          </hbox>
390          <vbox id="addon-list-empty" class="alert-container"
391                flex="1" hidden="true">
392            <spacer class="alert-spacer-before"/>
393            <vbox class="alert">
394              <label value="&listEmpty.installed.label;"/>
395              <button label="&listEmpty.button.label;"
396                      command="cmd_goToDiscoverPane"/>
397            </vbox>
398            <spacer class="alert-spacer-after"/>
399          </vbox>
400          <richlistbox id="addon-list" class="list" flex="1"/>
401        </vbox>
402
403        <!-- updates view -->
404        <vbox id="updates-view" flex="1" class="view-pane">
405          <hbox class="view-header global-warning-container" align="center">
406            <!-- global warnings -->
407            <hbox class="global-warning" flex="1">
408              <hbox class="global-warning-safemode" flex="1" align="center"
409                    tooltiptext="&warning.safemode.label;">
410                <image class="warning-icon"/>
411                <label class="global-warning-text" flex="1" crop="end"
412                       value="&warning.safemode.label;"/>
413              </hbox>
414              <hbox class="global-warning-checkcompatibility" flex="1" align="center"
415                    tooltiptext="&warning.checkcompatibility.label;">
416                <image class="warning-icon"/>
417                <label class="global-warning-text" flex="1" crop="end"
418                       value="&warning.checkcompatibility.label;"/>
419              </hbox>
420              <button class="button-link global-warning-checkcompatibility"
421                      label="&warning.checkcompatibility.enable.label;"
422                      tooltiptext="&warning.checkcompatibility.enable.tooltip;"
423                      command="cmd_enableCheckCompatibility"/>
424              <hbox class="global-warning-updatesecurity" flex="1" align="center"
425                    tooltiptext="&warning.updatesecurity.label;">
426                <image class="warning-icon"/>
427                <label class="global-warning-text" flex="1" crop="end"
428                       value="&warning.updatesecurity.label;"/>
429              </hbox>
430              <button class="button-link global-warning-updatesecurity"
431                      label="&warning.updatesecurity.enable.label;"
432                      tooltiptext="&warning.updatesecurity.enable.tooltip;"
433                      command="cmd_enableUpdateSecurity"/>
434              <spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
435            </hbox>
436            <spacer flex="1"/>
437            <hbox id="updates-sorters" class="sort-controls" sortby="updateDate"
438                  ascending="false"/>
439          </hbox>
440          <vbox id="updates-list-empty" class="alert-container"
441                flex="1" hidden="true">
442            <spacer class="alert-spacer-before"/>
443            <vbox class="alert">
444              <label id="empty-availableUpdates-msg" value="&listEmpty.availableUpdates.label;"/>
445              <label id="empty-recentUpdates-msg" value="&listEmpty.recentUpdates.label;"/>
446              <button label="&listEmpty.findUpdates.label;"
447                      command="cmd_findAllUpdates"/>
448            </vbox>
449            <spacer class="alert-spacer-after"/>
450          </vbox>
451          <hbox id="update-actions" pack="center">
452            <button id="update-selected-btn" hidden="true"
453                    label="&updates.updateSelected.label;"
454                    tooltiptext="&updates.updateSelected.tooltip;"/>
455          </hbox>
456          <richlistbox id="updates-list" class="list" flex="1"/>
457        </vbox>
458
459        <!-- detail view -->
460        <scrollbox id="detail-view" flex="1" class="view-pane addon-view" orient="vertical">
461          <!-- global warnings -->
462          <hbox class="global-warning-container global-warning">
463            <hbox class="global-warning-safemode" flex="1" align="center"
464                  tooltiptext="&warning.safemode.label;">
465              <image class="warning-icon"/>
466              <label class="global-warning-text" flex="1" crop="end"
467                     value="&warning.safemode.label;"/>
468            </hbox>
469            <hbox class="global-warning-checkcompatibility" flex="1" align="center"
470                  tooltiptext="&warning.checkcompatibility.label;">
471              <image class="warning-icon"/>
472              <label class="global-warning-text" flex="1" crop="end"
473                     value="&warning.checkcompatibility.label;"/>
474            </hbox>
475            <button class="button-link global-warning-checkcompatibility"
476                    label="&warning.checkcompatibility.enable.label;"
477                    tooltiptext="&warning.checkcompatibility.enable.tooltip;"
478                    command="cmd_enableCheckCompatibility"/>
479            <hbox class="global-warning-updatesecurity" flex="1" align="center"
480                  tooltiptext="&warning.updatesecurity.label;">
481              <image class="warning-icon"/>
482              <label class="global-warning-text" flex="1" crop="end"
483                     value="&warning.updatesecurity.label;"/>
484            </hbox>
485            <button class="button-link global-warning-updatesecurity"
486                    label="&warning.updatesecurity.enable.label;"
487                    tooltiptext="&warning.updatesecurity.enable.tooltip;"
488                    command="cmd_enableUpdateSecurity"/>
489            <spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
490          </hbox>
491          <hbox flex="1">
492            <spacer flex="1"/>
493            <!-- "loading" splash screen -->
494            <vbox class="alert-container">
495              <spacer class="alert-spacer-before"/>
496              <hbox class="alert loading">
497                <image/>
498                <label value="&loading.label;"/>
499              </hbox>
500              <spacer class="alert-spacer-after"/>
501            </vbox>
502            <!-- actual detail view -->
503            <vbox class="detail-view-container" flex="3" contextmenu="addonitem-popup">
504              <vbox id="detail-notifications">
505                <hbox id="warning-container" align="center" class="warning">
506                  <image class="warning-icon"/>
507                  <label id="detail-warning" flex="1"/>
508                  <label id="detail-warning-link" class="text-link"/>
509                  <spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
510                </hbox>
511                <hbox id="error-container" align="center" class="error">
512                  <image class="error-icon"/>
513                  <label id="detail-error" flex="1"/>
514                  <label id="detail-error-link" class="text-link"/>
515                  <spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
516                </hbox>
517                <hbox id="pending-container" align="center" class="pending">
518                  <image class="pending-icon"/>
519                  <label id="detail-pending" flex="1"/>
520                  <button id="detail-restart-btn" class="button-link"
521                          label="&addon.restartNow.label;"
522                          command="cmd_restartApp"/>
523                  <button id="detail-undo-btn" class="button-link"
524                          label="&addon.undoAction.label;"
525                          tooltipText="&addon.undoAction.tooltip;"
526                          command="cmd_cancelOperation"/>
527                  <spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
528                </hbox>
529              </vbox>
530              <hbox align="start">
531                <vbox id="detail-icon-container" align="end">
532                  <image id="detail-icon" class="icon"/>
533                </vbox>
534                <vbox flex="1">
535                  <vbox id="detail-summary">
536                    <hbox id="detail-name-container" class="name-container"
537                          align="start">
538                      <label id="detail-name" flex="1"/>
539                      <label id="detail-version"/>
540                      <label class="disabled-postfix" value="&addon.disabled.postfix;"/>
541                      <label class="update-postfix" value="&addon.update.postfix;"/>
542                      <spacer flex="5000"/> <!-- Necessary to allow the name to wrap -->
543                    </hbox>
544                    <label id="detail-creator" class="creator"/>
545                  </vbox>
546                  <hbox id="detail-desc-container" align="start">
547                    <vbox pack="center"> <!-- Necessary to work around bug 394738 -->
548                      <image id="detail-screenshot" hidden="true"
549                             onload="this.removeAttribute('loading');"
550                             onerror="this.setAttribute('loading', 'error');"/>
551                    </vbox>
552                    <vbox flex="1">
553                      <description id="detail-desc"/>
554                      <description id="detail-fulldesc"/>
555                    </vbox>
556                  </hbox>
557                  <vbox id="detail-contributions">
558                    <description id="detail-contrib-description">
559                      &detail.contributions.description;
560                    </description>
561                    <hbox align="center">
562                      <label id="detail-contrib-suggested"/>
563                      <spacer flex="1"/>
564                      <button id="detail-contrib-btn"
565                              label="&cmd.contribute.label;"
566                              accesskey="&cmd.contribute.accesskey;"
567                              tooltiptext="&cmd.contribute.tooltip;"
568                              command="cmd_contribute"/>
569                    </hbox>
570                  </vbox>
571                  <grid id="detail-grid">
572                    <columns>
573                       <column flex="1"/>
574                       <column flex="2"/>
575                    </columns>
576                    <rows id="detail-rows">
577                      <row class="detail-row-complex" id="detail-updates-row">
578                        <label class="detail-row-label" value="&detail.updateType;"/>
579                        <hbox align="center">
580                          <radiogroup id="detail-autoUpdate" orient="horizontal">
581                            <!-- The values here need to match the values of
582                                 AddonManager.AUTOUPDATE_* -->
583                            <radio label="&detail.updateDefault.label;"
584                                   tooltiptext="&detail.updateDefault.tooltip;"
585                                   value="1"/>
586                            <radio label="&detail.updateAutomatic.label;"
587                                   tooltiptext="&detail.updateAutomatic.tooltip;"
588                                   value="2"/>
589                            <radio label="&detail.updateManual.label;"
590                                   tooltiptext="&detail.updateManual.tooltip;"
591                                   value="0"/>
592                          </radiogroup>
593                          <button id="detail-findUpdates-btn" class="button-link"
594                                  label="&detail.checkForUpdates.label;"
595                                  accesskey="&detail.checkForUpdates.accesskey;"
596                                  tooltiptext="&detail.checkForUpdates.tooltip;"
597                                  command="cmd_findItemUpdates"/>
598                        </hbox>
599                      </row>
600                      <row class="detail-row" id="detail-dateUpdated" label="&detail.lastupdated.label;"/>
601                      <row class="detail-row-complex" id="detail-homepage-row" label="&detail.home;">
602                        <label class="detail-row-label" value="&detail.home;"/>
603                        <label id="detail-homepage" class="detail-row-value text-link" crop="end"/>
604                      </row>
605                      <row class="detail-row-complex" id="detail-repository-row" label="&detail.repository;">
606                        <label class="detail-row-label" value="&detail.repository;"/>
607                        <label id="detail-repository" class="detail-row-value text-link"/>
608                      </row>
609                      <row class="detail-row" id="detail-size" label="&detail.size;"/>
610                      <row class="detail-row-complex" id="detail-rating-row">
611                        <label class="detail-row-label" value="&rating2.label;"/>
612                        <hbox>
613                          <label id="detail-rating" class="meta-value meta-rating"
614                                 showrating="average"/>
615                          <label id="detail-reviews" class="text-link"/>
616                        </hbox>
617                      </row>
618                      <row class="detail-row" id="detail-downloads" label="&detail.numberOfDownloads.label;"/>
619                    </rows>
620                  </grid>
621                  <hbox id="detail-controls">
622                    <button id="detail-prefs-btn" class="addon-control preferences"
623#ifdef XP_WIN
624                            label="&detail.showPreferencesWin.label;"
625                            accesskey="&detail.showPreferencesWin.accesskey;"
626                            tooltiptext="&detail.showPreferencesWin.tooltip;"
627#else
628                            label="&detail.showPreferencesUnix.label;"
629                            accesskey="&detail.showPreferencesUnix.accesskey;"
630                            tooltiptext="&detail.showPreferencesUnix.tooltip;"
631#endif
632                            command="cmd_showItemPreferences"/>
633                    <spacer flex="1"/>
634                    <button id="detail-enable-btn" class="addon-control enable"
635                            label="&cmd.enableAddon.label;"
636                            accesskey="&cmd.enableAddon.accesskey;"
637                            command="cmd_enableItem"/>
638                    <button id="detail-disable-btn" class="addon-control disable"
639                            label="&cmd.disableAddon.label;"
640                            accesskey="&cmd.disableAddon.accesskey;"
641                            command="cmd_disableItem"/>
642                    <button id="detail-uninstall-btn" class="addon-control remove"
643                            label="&cmd.uninstallAddon.label;"
644                            accesskey="&cmd.uninstallAddon.accesskey;"
645                            command="cmd_uninstallItem"/>
646                    <button id="detail-purchase-btn" class="addon-control purchase"
647                            command="cmd_purchaseItem"/>
648                    <button id="detail-install-btn" class="addon-control install"
649                            label="&cmd.installAddon.label;"
650                            accesskey="&cmd.installAddon.accesskey;"
651                            command="cmd_installItem"/>
652                  </hbox>
653                </vbox>
654              </hbox>
655            </vbox>
656            <spacer flex="1"/>
657          </hbox>
658        </scrollbox>
659
660      </deck>
661
662    </box>
663  </hbox>
664
665</page>