<?xml version="1.0"?>

# -*- Mode: HTML -*-
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org browser.
#
# The Initial Developer of the Original Code is Mozilla.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Dão Gottwald <dao@mozilla.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

<bindings id="tabPreviews"
          xmlns="http://www.mozilla.org/xbl"
          xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
          xmlns:xbl="http://www.mozilla.org/xbl">
  <binding id="ctrlTab-preview" extends="chrome://global/content/bindings/button.xml#button-base">
    <content pack="center">
      <xul:stack>
        <xul:vbox class="ctrlTab-preview-inner" align="center" pack="center"
                  xbl:inherits="width=canvaswidth">
          <xul:hbox class="tabPreview-canvas" xbl:inherits="style=canvasstyle">
            <children/>
          </xul:hbox>
          <xul:label xbl:inherits="value=label,crop" class="plain"/>
        </xul:vbox>
        <xul:hbox class="ctrlTab-favicon-container" xbl:inherits="hidden=noicon">
          <xul:image class="ctrlTab-favicon" xbl:inherits="src=image"/>
        </xul:hbox>
      </xul:stack>
    </content>
    <handlers>
      <handler event="mouseover" action="ctrlTab._mouseOverFocus(this);"/>
      <handler event="command" action="ctrlTab.pick(this);"/>
      <handler event="click" button="1" action="ctrlTab.remove(this);"/>
#ifdef XP_MACOSX
# Control+click is a right click on OS X
      <handler event="click" button="2" action="ctrlTab.pick(this);"/>
#endif
    </handlers>
  </binding>

  <binding id="allTabs-preview" extends="chrome://global/content/bindings/button.xml#button-base">
    <content pack="center" align="center">
      <xul:stack>
        <xul:vbox class="allTabs-preview-inner" align="center" pack="center">
          <xul:hbox class="tabPreview-canvas" xbl:inherits="style=canvasstyle">
            <children/>
          </xul:hbox>
          <xul:label flex="1" xbl:inherits="value=label,crop" class="allTabs-preview-label plain"/>
        </xul:vbox>
        <xul:hbox class="allTabs-favicon-container">
          <xul:image class="allTabs-favicon" xbl:inherits="src=image"/>
        </xul:hbox>
      </xul:stack>
    </content>
    <handlers>
      <handler event="command" action="allTabs.pick(this);"/>
      <handler event="click" button="1" action="gBrowser.removeTab(this._tab);"/>

      <handler event="dragstart"><![CDATA[
        event.dataTransfer.mozSetDataAt("application/x-moz-node", this._tab, 0);
      ]]></handler>

      <handler event="dragover"><![CDATA[
        let tab = event.dataTransfer.mozGetDataAt("application/x-moz-node", 0);
        if (tab && tab.parentNode == gBrowser.tabContainer)
          event.preventDefault();
      ]]></handler>

      <handler event="drop"><![CDATA[
        let tab = event.dataTransfer.mozGetDataAt("application/x-moz-node", 0);
        if (tab && tab.parentNode == gBrowser.tabContainer) {
          let newIndex = Array.indexOf(gBrowser.tabs, this._tab);
          gBrowser.moveTabTo(tab, newIndex);
        }
      ]]></handler>
    </handlers>
  </binding>
</bindings>
