move new tab button next to tabs

     http://b/issue?id=3052018
     moved tab button
     added new tab option to menu
     http://b/issue?id=3052583
     changed text from window to tab

Change-Id: I079636f29ea529915a5f8c3ad55b4b4c7afe579f
diff --git a/src/com/android/browser/TabBar.java b/src/com/android/browser/TabBar.java
index 4c8ab26..9217ef2 100644
--- a/src/com/android/browser/TabBar.java
+++ b/src/com/android/browser/TabBar.java
@@ -16,6 +16,9 @@
 
 package com.android.browser;
 
+import com.android.browser.ScrollWebView.ScrollListener;
+import com.android.browser.TabControl.TabChangeListener;
+
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
@@ -36,9 +39,6 @@
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
-import com.android.browser.ScrollWebView.ScrollListener;
-import com.android.browser.TabControl.TabChangeListener;
-
 import java.util.HashMap;
 import java.util.Map;
 
@@ -59,10 +59,11 @@
 
     private TabScrollView mTabs;
     private TabControl mControl;
+    private ImageButton mNewTab;
+    private int mButtonWidth;
 
     private Map<Tab, TabViewData> mTabMap;
 
-    private float mDensityScale;
     private boolean mUserRequestedUrlbar;
     private boolean mTitleVisible;
     private boolean mShowUrlMode;
@@ -76,7 +77,6 @@
         mTitleBar = titlebar;
         mTitleBar.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
                 LayoutParams.WRAP_CONTENT));
-        mDensityScale = context.getResources().getDisplayMetrics().density;
         mTabMap = new HashMap<Tab, TabViewData>();
         mBrowserActivity = context;
         mControl = tabcontrol;
@@ -84,6 +84,8 @@
         LayoutInflater factory = LayoutInflater.from(context);
         factory.inflate(R.layout.tab_bar, this);
         mTabs = (TabScrollView) findViewById(R.id.tabs);
+        mNewTab = (ImageButton) findViewById(R.id.newtab);
+        mNewTab.setOnClickListener(this);
 
         // TODO: Change enabled states based on whether you can go
         // back/forward.  Probably should be done inside onPageStarted.
@@ -101,22 +103,38 @@
         mControl.setOnTabChangeListener(this);
         mUserRequestedUrlbar = false;
         mTitleVisible = true;
+        mButtonWidth = -1;
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+        if (mButtonWidth == -1) {
+            mButtonWidth = mNewTab.getMeasuredWidth();
+        }
+        int sw = mTabs.getMeasuredWidth();
+        int w = right-left;
+        if (w-sw < mButtonWidth) {
+            sw = w - mButtonWidth;
+        }
+        mTabs.layout(0, 0, sw, bottom-top );
+        mNewTab.layout(sw, 0, sw+mButtonWidth, bottom-top);
     }
 
     public void onClick(View view) {
-        if (mTabs.getSelectedTab() == view) {
+        if (mNewTab == view) {
+            mBrowserActivity.openTabToHomePage();
+        } else if (mTabs.getSelectedTab() == view) {
             if (mBrowserActivity.isFakeTitleBarShowing() && !isLoading()) {
                 mBrowserActivity.hideFakeTitleBar();
             } else {
                 showUrlBar();
             }
-            // temporarily disabled
-            // mTitleBar.requestUrlInputFocus();
         } else {
-            TabViewData data = (TabViewData) view.getTag();
-            int ix = mControl.getTabIndex(data.mTab);
-            mTabs.setSelectedTab(ix);
-            mBrowserActivity.switchToTab(ix);
+            int ix = mTabs.getChildIndex(view);
+            if (ix >= 0) {
+                mTabs.setSelectedTab(ix);
+                mBrowserActivity.switchToTab(ix);
+            }
         }
     }