| Index: chrome/android/java_staging/src/org/chromium/chrome/browser/toolbar/Toolbar.java
|
| diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/toolbar/Toolbar.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/toolbar/Toolbar.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1af6fa9e47767ae72083f184580ef0cb19d54f11
|
| --- /dev/null
|
| +++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/toolbar/Toolbar.java
|
| @@ -0,0 +1,117 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +package org.chromium.chrome.browser.toolbar;
|
| +
|
| +import android.graphics.Bitmap;
|
| +import android.graphics.Rect;
|
| +import android.view.View;
|
| +import android.view.View.OnClickListener;
|
| +
|
| +import org.chromium.chrome.browser.appmenu.AppMenuButtonHelper;
|
| +import org.chromium.chrome.browser.compositor.Invalidator;
|
| +import org.chromium.chrome.browser.omnibox.LocationBar;
|
| +
|
| +/**
|
| + * An interface for other classes to interact with Toolbar Layout. Other than for testing purposes
|
| + * this interface should be used rather than {@link ToolbarLayout} and extending classes.
|
| + */
|
| +public interface Toolbar {
|
| +
|
| + /**
|
| + * Initialize the external dependencies required for view interaction.
|
| + * @param toolbarDataProvider The provider for toolbar data.
|
| + * @param tabController The controller that handles interactions with the tab.
|
| + * @param appMenuButtonHelper The helper for managing menu button interactions.
|
| + */
|
| + void initialize(ToolbarDataProvider toolbarDataProvider,
|
| + ToolbarTabController tabController, AppMenuButtonHelper appMenuButtonHelper);
|
| +
|
| + /**
|
| + * Sets the {@link Invalidator} that will be called when the toolbar attempts to invalidate the
|
| + * drawing surface. This will give the object that registers as the host for the
|
| + * {@link Invalidator} a chance to defer the actual invalidate to sync drawing.
|
| + * @param invalidator An {@link Invalidator} instance.
|
| + */
|
| + void setPaintInvalidator(Invalidator invalidator);
|
| +
|
| + /**
|
| + * Adds a custom action button to the {@link Toolbar} if it is supported.
|
| + * @param buttonSource The {@link Bitmap} resource to use as the source for the button.
|
| + * @param listener The {@link OnClickListener} to use for clicks to the button.
|
| + */
|
| + void addCustomActionButton(Bitmap buttonSource, OnClickListener listener);
|
| +
|
| + /**
|
| + * Sets the OnClickListener that will be notified when the TabSwitcher button is pressed.
|
| + * @param listener The callback that will be notified when the TabSwitcher button is pressed.
|
| + */
|
| + void setOnTabSwitcherClickHandler(OnClickListener listener);
|
| +
|
| + /**
|
| + * Sets the OnClickListener that will be notified when the New Tab button is pressed.
|
| + * @param listener The callback that will be notified when the New Tab button is pressed.
|
| + */
|
| + void setOnNewTabClickHandler(OnClickListener listener);
|
| +
|
| + /**
|
| + * Sets the OnClickListener that will be notified when the bookmark button is pressed.
|
| + * @param listener The callback that will be notified when the bookmark button is pressed.
|
| + */
|
| + void setBookmarkClickHandler(OnClickListener listener);
|
| +
|
| + /**
|
| + * Sets the OnClickListener to notify when the back button is pressed in hosted mode.
|
| + * @param listener The callback that will be notified when the back button is pressed.
|
| + */
|
| + void setHostedBackClickHandler(OnClickListener listener);
|
| +
|
| + /**
|
| + * Calculates the {@link Rect} that represents the content area of the location bar. This
|
| + * rect will be relative to the toolbar.
|
| + * @param outRect The Rect that represents the content area of the location bar.
|
| + */
|
| + void getLocationBarContentRect(Rect outRect);
|
| +
|
| + /**
|
| + * @return Whether any swipe gestures should be ignored for the current Toolbar state.
|
| + */
|
| + boolean shouldIgnoreSwipeGesture();
|
| +
|
| + /**
|
| + * Returns the elapsed realtime in ms of the time at which first draw for the toolbar occurred.
|
| + */
|
| + long getFirstDrawTime();
|
| +
|
| + /**
|
| + * Finish any toolbar animations.
|
| + */
|
| + void finishAnimations();
|
| +
|
| + /**
|
| + * @return {@link LocationBar} object this {@link Toolbar} contains.
|
| + */
|
| + LocationBar getLocationBar();
|
| +
|
| + // TODO(yusufo): Move the below calls to a separate interface about texture capture.
|
| + /**
|
| + * Calculate the relative position wrt to the given container view.
|
| + * @param containerView The container view to be used.
|
| + * @param position The position array to be used for returning the calculated position.
|
| + */
|
| + void getPositionRelativeToContainer(View containerView, int[] position);
|
| +
|
| + /**
|
| + * Sets whether or not the toolbar should draw as if it's being captured for a snapshot
|
| + * texture. In this mode it will only draw the toolbar in it's normal state (no TabSwitcher
|
| + * or animations).
|
| + * @param textureMode Whether or not to be in texture capture mode.
|
| + */
|
| + void setTextureCaptureMode(boolean textureMode);
|
| +
|
| + /**
|
| + * @return Whether a dirty check for invalidation makes sense at this time.
|
| + */
|
| + boolean isReadyForTextureCapture();
|
| +}
|
|
|